•January 7th 2020
2019 has been an exciting year for Stream. The team doubled, our customers doubled, and we launched our second product – Stream Chat. It’s been great to see how well our chat product has been received and how quickly it has grown. This would not have been possible without the trust and support of our customers and the hardworking team here at Stream. On that note, I would like to start this blog post about Stream in 2020 with a big thanks to all of you.
It’s particularly exciting to see new startups leverage Stream and grow to millions of users without ever experiencing scaling issues on their chat and feeds. Only a few years ago, it was still typical for companies that experienced rapid growth to be bogged down by scaling challenges — companies such as Friendster, Tumblr, Hyves, Twitter, and Facebook all experienced significant scaling issues and an abundant amount of technical debt.
Here at Stream, we’re passionate about building reusable components for applications that are easy to integrate and keep working regardless of how much traffic you throw at them. For the 2020 roadmap we’re planning the following improvements:
1. React, iOS & Android SDKs
For React, we’re adopting hooks and are adding built-in support for message search. We’re also working on performance improvements.
On iOS, the main focus is on stability, documentation, and better support for apps that don’t use RXSwift. For Android, we’re aiming to separate the low-level client and use an adapter system to support all three common ways of handling asynchronous requests: Callbacks, RXJava and Kotlin coroutines.
2. Ranking on Aggregated Feeds
At the moment, Crunchbase is live with a ranked aggregated feed. In Q1 of this year, we expect to make this generally available to all customers with ranked feeds.
With the rapid growth in 2019, we never managed to ship some smaller features on our wishlist for feeds. While that’s unfortunate, uptime and stability always take precedence. In 2020 we want to offer:
- Push for feeds
- Reaction counts for ranking
- Follow counts
- A CLI for feeds
- Merge support for feeds
- Muting & moderation for feeds
4. Docs & Support
Stream’s documentation for feeds and chat is going through a significant overhaul. In addition to docs, we are increasing the size of our support team to make sure all customers get the help they deserve as quickly as possible.
5. MML & Custom Commands
There’s a sneak preview available of Message Markup Language (MML) in the docs. The idea here is to allow for interactive messaging. MML is not generally available just yet. We would love to talk to more product teams that are adding interactive messaging so we can finetune the MML feature set based on your feedback.
6. Live Location Sharing
We’re going to add support for live location sharing to Stream’s chat offering.
7. Unifying Chat & Feeds
The majority of performance and storage technology for Stream is shared between our chat and feed products. However, there are many small differences between the two products that bring up unique edge cases. We plan to do the following to ensure that we have feature parity between the two products:
- Firehose support for webhooks, SQS, and WebSockets for chat
- Truncate support for chat
- API operation log for chat
- Push for feeds
- CLI for feeds
8. Chat small Features
Also, there are a few small features that we’re adding to chat:
- Improved message search: Enable filtering on message attributes in addition to searching on the message text. This makes it easier to search for messages that mention a user, or messages that have files attached to them.
- System message support for all endpoints that modify the channel. All endpoints that modify a channel or change channel members should support sending a system message. For example: “Thierry changed the channel color to green” or “Tommaso joined the channel”
- Better SDK support for loading messages from a specific point in time and viewing historical messages
- Ability to replay messages from a past livestream while you’re watching it
- Broadcast feature to write one message to many channels at once (for marketing and announcement type of use cases)
- Custom data support for channel members. Right now, we support custom data on the channel, the message, the attachment, user, and reactions. We don’t support custom data on channel members. If you have some member-specific settings, that can be a little cumbersome. One example is making it easier to allow users to split channels into tabs.
All the Best in 2020!
Again, I want to say thank you to all of the customers out there that have helped Stream become a success. I would also like to thank our team for the passion and drive they put towards building reusable components.
If you have feature requests for Stream, please don’t hesitate to reach out via email at email@example.com.
Happy New Year!