Stream (formerly GetStream) is a PaaS that provides APIs and SDKs that developers can use to build and embed live chat into their web and mobile applications. Stream makes it possible to build chat experiences with rich features like typing indicators, user presence, threaded conversations, push notifications, message & user moderation, reactions, user and channel mentions.
However, Stream has its limitations:
All chat traffic is processed and stored in a single datacenter / region. This can have negative implications on performance (increased latency), reliability, and availability (single point of congestion and failure).
Chat application data (messages, channels, users) is stored by Stream in their backend systems. This may be problematic for certain chat use cases, as it could lead to data governance-related concerns and issues.
Stream is a chat-focused solution. If you need to deliver other realtime experiences to go alongside chat (for example, multiplayer collaboration, or broadcasting live sports data), Stream can’t help; you have to use a separate technology.
5 alternatives to Stream for live chat experiences
We’ll now look at five of the best chat API and messaging solutions, which make great alternatives to Stream. Here are the five solutions we’ll cover:
Sendbird is a Platform-as-a-Service (PaaS) that provides APIs and SDKs to enable chat and voice and video calling in web and mobile apps. The Sendbird Chat product is the primary Sendbird offering for building chat experiences. It’s an API-based service that gives developers tools to add realtime, 1-on-1, and group chat functionality to their apps.
Sendbird Chat advantages
Feature-rich chat API, with diverse capabilities, including voice and video support, chat UI kits, message and user moderation, push notifications, reactions, mentions, typing indicators, user presence, and read receipts.
Managed infrastructure layer that’s supposedly able to scale to 1 million+ active users per client app.
Compliance with security standards such as SOC 2, ISO 27001, HIPAA/HITECH, and GDPR.
Sendbird Chat limitations
Chat often goes hand-in-hand with other realtime use cases, such as multiplayer collaboration (think of Figma-like products, where you can edit your design collaboratively, and chat with other users, all in realtime). However, Sendbird is very much a chat-centric solution; if you’re looking to build other realtime experiences alongside chat, Sendbird can’t help; you will have to use different technologies, which brings additional complexity and increased costs to your project.
While Sendbird infrastructure is deployed across 8 datacenters, you are required to choose a single region (datacenter) for an app to reside in. This has negative implications on performance (increased latency), reliability, and availability. It’s probably one of the reasons why Sendbird can only provide a 99.9% uptime SLA.
Sendbird Chat offers a limited number of chat SDKs (7 in total), with no support for languages like Java, Go, PHP, Python, or Ruby. It’s also worth mentioning that Sendbird has very limited options when it comes to integrations. It essentially only allows you to configure webhooks, but it offers no pre-built integrations with other components, like databases and event streaming platforms (e.g., Kafka).
Firebase is a Backend as a Service (BaaS) platform that allows you to build, test, release, and monitor web and mobile apps for end-users. You can combine several Firebase capabilities to add chat functionality to your apps: Firebase Authentication, Firebase Realtime Database/Cloud Firestore (to store chat data and sync it in realtime to connected client devices), and Firebase Cloud Messaging (to send notifications so that users get new chat messages if they’re in another app).
Firebase helps app developers move quickly: you don’t have to worry about hosting, provisioning, and managing backend processes and components like databases, data storage, and authentication. Firebase makes the entire development cycle shorter and more straightforward.
Firebase has good technical documentation, and detailed SDK and API references, making it easy to get started and use the platform. Going beyond docs, there are about 1.5 million apps built with Firebase, so there’s a pretty big community of experts who can help you with questions and issues.
Most Firebase services are free to start with, which is great if you are new to Firebase and simply want to test the platform, assessing if it’s the right choice for your chat use case.
An instance of the Firebase Realtime Database has a limit of 200.000 concurrent connections and 1.000 write operations per second. To scale beyond these limits, you have to use sharding, which is a notoriously difficult process. Alternatively, you can opt for Cloud Firestore, which auto-scales up to a more generous limit: roughly 1 million concurrent connections. However, if you need to scale beyond 1 million users, Cloud Firestore can’t help you. In addition, unlike the Realtime Database, Cloud Firestore does not support presence natively, which is a key feature for any chat app.
Firebase comes with a database-centric architecture. Any updates being streamed in realtime between chat users must go via the database. This forces you to permanently store even the transient events that need to be sent to users, leading to an unnecessary increase in storage costs. An example of transient messages in a chat app scenario would be typing indicators – events that occur frequently but have zero need for permanent storage.
There are plenty of horror stories of costs escalating out of control, especially if you are new to Firebase, and don’t yet have a good grasp on the pricing model and how to engineer your app in a cost-effective manner. See How not to get a $30k bill from Firebase for details.
Pusher is a realtime PaaS that offers two products:
Pusher Channels: realtime message delivery using the publish subscribe messaging pattern.
Pusher Beams: native push notifications for iOS, Android, and web clients.
Both can help you to create a chat experience similar to that of Stream. But whilst Stream hands you ready-to-use chat features through its API, with Pusher you get lower level building blocks. This means you will have to put in more development time with Pusher. The upside to this is that Pusher offers greater flexibility. Not only can you tailor the chat experience more precisely but also expand it to other real-time scenarios, such as data broadcast.
Based on WebSocket but can fall back where needed: Pusher’s default protocol for message delivery is WebSocket. Where that’s not available, it will continue to deliver messages using fallbacks including HTTP long polling and HTTP streaming.
Choice of SDKs: Pusher provides client libraries for various frontend and backend languages/frameworks, from Android and iOS to React, Python, and NodeJS. Eighteen SDKs are officially supported, and there are community-backed SDKs for other platforms.
Security and compliance: Pusher complies with GDPR and HIPAA standards, as well as providing end-to-end message encryption.
Does not guarantee delivery: For a chat experience to be fulfilling, all participants must receive every message in the conversation. Pusher doesn’t guarantee that messages will reach their destination, meaning you’ll need to build and maintain additional quality of service logic.
Relatively basic offering: Sending messages to the right destination is only part of what a realtime platform needs to do. Pusher lacks some features you’ll find elsewhere. For example, Pusher doesn’t store your message history. In that particular case, you’d need to build your own message storage using a third-party database. Unfortunately, Pusher also falls down when it comes to integrations. So, without a ready made integration with a database tool, such as PostgreSQL, you’ll need to build your own,
Single region: A significant downside of Pusher is that all of your data goes through one location. That can lead to latency issues for end users in distant regions and reliability problems as there’s no way to fall back to another datacenter.
Twilio is a Communications Platform as a Service (CPaaS). It offers APIs that enable realtime communication via chat, VoIP, MMS and SMS notifications, video, and email. The Programmable Chat API used to be the main Twilio product for delivering chat functionality. However, Programmable Chat was retired in 2022. Its successor is the Twilio Conversations API - a solution that makes it possible to add 1-to-1 and multiparty chat to your apps.
Twilio Conversations advantages
Compliance with several different security standards: ISO 27001, HIPAA, GDPR, SOC 2.
Twilio Conversations is an omnichannel messaging product; it allows you to build chat experiences across different channels, such as WhatsApp Messaging, Facebook Messenger, web-based and in-app chat.
Hosted API, so customers don’t have to deal with scaling and maintaining chat infrastructure themselves.
Twilio Conversations limitations
Limited feature set. For example, you can’t use Twilio Conversations to implement public group chat, and there’s no support for some common chat functionality like mentions and emoji reactions.
Twilio does not support multi-region chat architectures. All chat traffic is processed and stored in a single datacenter / region. This can have negative implications on performance (increased latency), reliability, and availability (single point of congestion and failure).
Oftentimes, chat is not a standalone product, but, rather, a part of a wider realtime experience. For example, there are plenty of multiplayer games with embedded chat. Or, think of Uber-like ridesharing apps that offer live location tracking, while also allowing you to chat in realtime with the driver. If you’re building these kinds of experiences, you can only use Twilio for chat, while for your other realtime requirements, you will have to use another solution. Of course, this leads to additional operational overhead and increased expenses for your project.
Ably, the most reliable chat solution to use instead of Stream
Ably is a realtime experience infrastructure provider. Our APIs and SDKs help you power realtime functionality for use cases like live chat, multiplayer collaboration, and data broadcast, without having to worry about managing and scaling messy realtime infrastructure.
Key Ably features and capabilities
Our globally-distributed, multi-region network offers unrivaled guarantees around performance, data integrity, reliability, and scalability:
<65 ms median latency.
Guaranteed message ordering and (exactly-once) delivery, even in unreliable network conditions.
Redundancy at regional and global levels, with a 99.999% uptime SLA.
Dynamic elasticity, with the ability to send billions of messages to millions of channels and chat users.
We provide flexible building blocks like pub/sub messaging over WebSockets, presence, and message interactions, so you can build rich 1:1 and group chat experiences, with diverse features, including:
Last seen indicators
Chat admin privileges
We have client SDKs for every major programming language and development platform, and we offer a wide variety of integrations, so you can easily connect Ably to your preferred tech stack.