TalkJS vs. Sendbird: Discover the right choice for your use case
A head-to-head comparison between TalkJS and Sendbird for live chat use cases. Learn about their features, pros and cons, similarities, and differences.
Integrating chat features into your app can boost user engagement, cut support costs, and add value for both users and your business. But before you start building, there’s a choice to make: how will you build that chat functionality?
Generally, there are four strategies to integrate chat into an existing or new app:
Build your own solution from the ground up: Creating your own solution from scratch might offer more control - but it will probably delay your app’s release, you’ll need specialist expertise, and there’s an additional maintenance cost.
Use a drop-in chat widget: Using a ready-made chat widget is quick to set up, but you're restricted to the features the provider offers.
Integrate a chat API: Similar to a chat widget, a chat API is quick to set up but it does offer more customization. However, you're still restricted to the features offered by that provider.
Use a realtime platform as a service (PaaS): With a realtime PaaS, you can build a chat experience that meets your needs but without having to build and maintain complex realtime infrastructure.
In this article, we’ll look at two options. One of them, Sendbird, is a chat API that offers a drop-in chat widget to help you get started quicker. The other, TalkJS, is a drop-in chat widget that offers a JavaScript SDK to help you customize the chat experience. And to finish, we’ll look at how you can build your own chat functionality using the Ably realtime PaaS.
What is Sendbird?
Sendbird is a chat API that gives you the backend functionality to build chat experiences into your applications. As well as one-to-one messaging and chat groups, Sendbird gives you typical chat features such as push notifications, rich media sharing, and moderation. Using Sendbird’s API, SDKs, and UI kits, you can focus on integrating chat into your app’s user experience without having to manage the infrastructure that supports it.
As well as a general chat service, Sendbird offers specialized products for support chat, live video streaming, and calling.
Pros of Sendbird
Fast time to market: Using Sendbird’s UI kits, you can get up and running relatively quickly.
Use case specific APIs: As well as a general chat API, Sendbird offers specialized APIs for use cases such as support desk chat and chat for live video streaming.
Can scale to relatively large user bases: Sendbird states that it can support more than a million active users per client application.
Compliance: Sendbird checks the box for industry and regulatory standards including SOC 2, ISO 27001, HIPAA/HITECH, and GDPR.
Ready to use chat functionality: Sendbird provides chat-specific functionality, such as read receipts, typing indicators, moderation, one to one messaging, and both private and public groups,
Cons of Sendbird
Single region: Although you can choose from a list of global locations to host your Sendbird chat, Sendbird is not multi-region. That impacts both user experience and reliability. If you host your chat in Sendbird’s US West region, the latency experienced by a chat user in Bengaluru will be noticeably worse than someone in California, for example. Similarly, if that Sendbird region experiences an issue, there’s no way to fall back to another region.
Lack of guarantees: To make sense, chat often relies on messages arriving in the right order. Unfortunately, Sendbird offers no guarantees that messages will arrive in order or at all. Network conditions could mean that a user in one location receives messages in a different order to other users. It could also mean that for some people messages don’t arrive at all.
Data governance risks: Sendbird stores your chat messages, which could introduce a data governance problem depending on which data center location you choose.
Inflexible pricing: Sendbird offers fixed packages each with different quotas. Should you go over those quotas, for example due to a one-off event or an unexpected uptick in usage, you’ll pay expensive overage charges.
Narrow focus: Sendbird doesn't offer integrations for data, analytics, or other tools. While its emphasis on chat can help you get started faster, that does mean you’ll need different tools for realtime functions other than chat.
What is TalkJS?
TalkJS, like Sendbird, provides a backend chat API, the ability to trigger third party functionality through webhooks, and a quick way to get started using a JavaScript widget. However, unlike Sendbird, TalkJS focuses mostly on text chat through its JavaScript widget. That means that there’s no support for features such as voice and video calling. Similarly, TalkJS doesn’t offer SDKs for its backend API.
Pros of TalkJS
Quick to get started: You can drop the TalkJS widget into your web app’s frontend, or a mobile app built using React Native or Flutter, with just a few lines of code.
Ready-made chat features: TalkJS supports public channels, private groups, and direct messaging, as well as search, native mobile notifications, file sharing, user presence, voice messages, and other common chat features.
Some scope to integrate with existing tooling: Webhooks allow you to trigger your own custom functionality in response to a limited number of events, such as when a notification is read or a new user is created. The REST API offers some functionality, such as creating a conversation, deleting a message, and downloading the messages from a conversation.
Some support for message guarantees: By default, TalkJS appears to make few guarantees, such as ensuring the right messages reach each user. However, it does guarantee the idempotency of messages. For example, if your code tries to send the same message twice, perhaps because the initial request appears to fail, TalkJS will prevent it from being delivered twice.
Cons of TalkJS
Text chat only: Although chat users can send voice messages using TalkJS, it does not support realtime voice or video chat.
Single region and no choice of region: TalkJS runs on Digital Ocean servers inside the European Union only. That means longer latencies for users outside Europe and reduces the TalkJS’s ability to withstand network or data center issues with its sole provider.
Data governance risks: Both Sendbird and TalkJS store your chat data. However, unlike Sendbird, TalkJS does not comply with standards such as SOC2. Also unlike Sendbird, TalkJS stores all chat data in the EU. Depending on your use case and on where you and your users are located, that could make TalkJS unsuitable.
Limited to chat: Also like Sendbird, TalkJS offers only chat functionality. Should you want to build other realtime functionality then you’ll need to integrate another provider.
Pricing tailored to smaller usage: TalkJS offers two main packages, with their larger Growth package supporting only 1,250 group chat users. Anything larger requires negotiating a custom enterprise plan.
TalkJS vs Sendbird: feature comparison
Sendbird and TalkJS may look alike at first, but their features and infrastructure are quite different. So, let’s see how they differ and where they are alike.
Performance, reliability, scalability, and messaging guarantees
Users want chat messages to be quick, delivered in the right order, and available around the clock. The reliability of a chat API hinges on its infrastructure. So, between Sendbird and TalkJS, which one offers the most reliable and performant chat experience?
Feature/capability | Sendbird | TalkJS |
Uptime guarantee | TalkJS offers an uptime guarantee to enterprise customers, but does not publish what that is. | |
Latency | Unknown | Unknown |
Scalability | Sendbird claims it can scale to 1 million concurrent connections per client app. Public chat channels can sustain up to 100K users. Private chat channels are limited to 20k users. | Published pricing shows support for at least 1,250 chat participants but it’s not clear if that’s concurrent participants. |
Infrastructure | 8 regions | EU only |
Multi-region | No. You pick one of 8 data center locations and then all of your chat functionality and data stays there. | No. The TalkJS website mentions only that the service is hosted by Digital Ocean in the EU. |
Guaranteed message ordering | Unclear | “Guaranteed performance” is available only to enterprise customers but it isn’t clear what that offers. |
Guaranteed message delivery (exactly-once) | Unclear | “Guaranteed performance” is available only to enterprise customers but it isn’t clear what that offers. |
Automatic reconnections with continuity | After a brief disconnection, Sendbird’s Chat SDKs reconnect automatically. However, it is unclear if messages sent during the disconnection will be recovered. | The TalkJS SDK documentation shows that once a session is destroyed the developer must reconnect manually. The TalkJS JavaScript widget and SDK handle communication between the client and the server. |
Chat features
Beyond the fundamentals of letting users exchange messages, what do you need a chat API to do? Do you want to alert chat users with native mobile notifications, for example? Or how about moderation features? Let’s look at how Sendbird and TalkJS line-up.
Feature | Sendbird | TalkJS |
1-to-1 chat | Yes | Yes |
Group chat | Yes | Yes |
Public and private group chat | Yes | Yes |
Chat UI components | Yes (iOS, Android, React, React Native) | Yes (JavaScript web, Flutter, React Native) |
Push notifications | Yes | Yes |
Message history (persisted data) | Yes | Yes |
Rewind/load previous messages | Yes | Yes |
User presence | Yes | Yes |
Advanced chat features | - Typing indicators - Message delivery receipts & read receipts - Reactions - User and channel mentions - Unread message count - User and friend lists - Channel list - Message and user moderation (e.g. profanity filter, mute user) - Scheduled and offline messages - Multimedia support (audio, video, photos) | - Typing indicators - Message delivery receipts & read receipts - Reactions - User and channel mentions - Unread message count - User and friend lists - Channel list - Message moderation (word blocklists and manual message deletion by admin) - Realtime translation - Location sharing - Link previews - Voice messages |
Supported languages, integrations, and protocols
How a chat tool integrates with your existing tech stack is an important factor in deciding whether it’s right for your app. If it offers an API, does that API give you access to all functionality? Are there SDKs to make it easier to work with the service in your preferred language? Does it integrate with other tooling, such as databases?
Feature | Sendbird | TalkJS |
SDKs | - iOS - Android (Kotlin) - JavaScript - Unreal - Unity - .NET - Flutter | - JavaScript - React Native - Flutter |
UI widgets | - iOS - Android - React - React Native | - JavaScript - React Native - Flutter |
3rd party integrations | Sendbird does not offer ready-made integrations. Instead, it offers two interfaces to create your own: - Chatbot API to enable chatbots to take part in conversations - Webhooks to trigger third-party functionality based on events in the chat platform | TalkJS has some integrations with tools such as WordPress and the Daily video API to enable video calling. It also offers a REST API and it supports webhooks to trigger third-party functionality based on events in the chat platform. |
Protocols | Sendbird uses WebSocket to connect chat clients with the server. Where WebSocket is unavailable, Sendbird falls back to HTTP polling. The chat API, for establishing connections and other administrative tasks, uses HTTP. | TalkJS uses WebSocket to connect the JavaScript widget with the TalkJS backend. It isn’t clear if TalkJS falls back to other protocols where WebSocket is unavailable. |
Security and compliance
With GDPR and California’s CCPA, stronger data protection has found its way into law. In some industries, such as healthcare, come with additional security and compliance requirements. How do Sendbird and TalkJS shape up?
Feature | Sendbird | TalkJS |
Encryption | In-transit: SSL/TLS At rest: AES 256 encryption | Encryption is available only to enterprise customers. |
Authentication | Sendbird offers three ways to authenticate a user: - By user ID, which is not recommended for production. - With a user token, which is generated at user creation and remains the same until you regenerate it manually. - With a session token that lasts only for that session. Alternatively, you can authenticate users with JSON Web Tokens (JWTs) if that better suits your workflow. | TalkJS doesn’t authenticate users, as it leaves that to the application in which the chat window appears. Optionally, TalkJS can sign each message so that it’s harder to forge user identity. |
Configurable chat roles & permissions | Yes | Yes |
Compliance | ISO 27001, HIPAA, GDPR, SOC 2 | GDPR |
Pricing and support
Pricing and support are good indicators of what type of experience you’re likely to have. Inflexible pricing packages might make it easier to estimate set-up costs but harder to deal with sudden spikes in demand, for example. And a service provider’s approach to support will give you an idea of how much you can rely on them when something goes wrong.
Feature | Sendbird | TalkJS |
Free plan | Free developer plan that offers: - 100 monthly active users - 10 peak concurrent connections - Unlimited number of messages - Access to “Pro” plan features - Community support | Free development environment only |
Pricing model | Pricing depends on number of monthly active users. Starter, Pro, and Enterprise plans offer different levels of functionality, each of which charges differently for the number of active users. For example, at the time of writing, the Starter plan is $399 per month for 5,000 MAU, whereas the Pro plan is $599 for 5,000 MAU. | Pricing depends on number of monthly active users and maximum number of group chat participants. Basic and Growth plans offer different levels of functionality and support for different usage levels. An Enterprise plan offers a custom package. For example, at the time of writing, the Basic plan is $279 per month for up to 10,000 MAU with a maximum of 300 group chat participants, whereas the Growth plan is $569 for up to 25,000 MAU and 1,250 group chat participants. However, the Basic plan lacks many features that are standard elsewhere. For example, the Basic plan lacks: - Ability to remove TalkJS branding - Search - Ability to set a custom sender domain Both the Basic and Growth plans lack: - Any form of SLA - Encryption guarantees - The ability to self-host |
Support offering | Sendbird offers best effort support with the option to buy annual support plans at an additional cost. Sendbird does not offer an uptime SLA without an add-on support plan. | Basic plan customers have access to Dutch office hours support via chat. Growth plan customers also have access to email support during Dutch office hours. Enterprise customers gain phone support and an uptime SLA. |
TalkJS vs Sendbird: Summary of differences and similarities
Sendbird and TalkJS take somewhat different approaches. Sendbird is primarily a backend service that offers UI widgets should you need them. TalkJS, on the other hand, focuses on its widgets for JavaScript web, React Native, and Flutter, while offering a JavaScript SDK and REST API should you want to customize the experience.
Let’s look at where Sendbird and TalkJS are similar and then where they differ.
Similarities between TalkJS and Sendbird
Both offer a fast way to get basic chat functionality: If the chat features offered by either vendor suit your needs, then they can offer a quick way to add chat to your app. However, that speed comes at the cost of flexibility and robust infrastructure.
Limited guarantees: Neither Sendbird nor TalkJS appears to guarantee that your users’ messages will arrive in order, the right number of times, or at all.
Limited support for backend development: Sendbird’s API and SDKs are better suited to integrating your backend with their chat service. However, neither TalkJS nor Sendbird offers SDKs for common languages such as Ruby, Python, or NodeJS, which will result in a rougher developer experience if you work in those languages.
Poor support for global audiences: TalkJS suffers here particularly as it offers hosting in the EU only. Sendbird is a little better, in that you can choose from a list of data center locations. However, in both cases, your chat service lives in one data center. That means a poorer experience for end users located elsewhere in the world, thanks to longer latencies. And if there’s an issue with that one data center, neither TalkJS nor Sendbird allows you to fall back to another location.
Differences between TalkJS and Sendbird
TalkJS does not support native mobile apps: Both Sendbird and TalkJS offer UI kits or SDKs to help you build chat into your mobile apps. If you’re working with cross-platform tools, such as React Native or Flutter, they are supported by both chat APIs. However, only Sendbird offers native SDKs for iOS and Android.
Sendbird has better support for data compliance: With default support for encryption and compliance with schemes such as SOC2 and HIPAA, Sendbird is likely to be a better choice than TalkJS for more serious use cases.
Sendbird supports voice and video calling: TalkJS offers text based chat only, with asynchronous voice messaging, whereas Sendbird also provides live voice and video chat.
TalkJS vs Sendbird: which platform has the best chat API?
Choosing between Sendbird and TalkJS could be difficult. It’s true that there are some distinguishing features, such as Sendbird’s Unity SDK potentially making it better suited to game development, for example. However, both options have gaps in significant areas, such as:
Issues with reliability and responsiveness: Whether you choose Sendbird or TalkJS, your chat backend will be limited to just one data center location. That means a greater chance of your chat going offline with no fallback and an increasingly poor experience the further users are from that data center.
Uncertainty over guarantees: Ensuring messages arrive in the right order at the right time is the number one job of a chat API. But neither Sendbird nor TalkJS appears to guarantee that messages will arrive in the right order, the right number of times, or at all.
Lack of flexibility: Both chat services allow you to tweak the user experience but, ultimately, you’re stuck with the feature choices made by the vendor. If they haven’t built what you need, then you’ll have to look elsewhere.
They only do chat: It might sound obvious but Sendbird and TalkJS are fundamentally limited to chat use cases. If you need to implement other realtime functionality, such as data broadcast or multiplayer collaboration, neither vendor will be able to help.
Sendbird and TalkJS both serve thousands of chat users and offer a quick way to add chat to your application. However, if you want to build chat that is tailored to your users’ needs, that offers guarantees, and that operates from multiple global locations, what are your choices?
Build reliable, guaranteed chat experiences using Ably
Building and running a global, realtime PaaS is specialized engineering work. Our team of engineers does this for you, meaning that you can focus on solving user problems.
Ably is a realtime experience platform used by HubSpot, I7Live, SportsBet, InvitePeople and more to power their fully-featured and reliable chat.
Ably Chat
Our new product, Ably Chat, is designed to deliver a great chat experience for use cases from livestreams and in-game communication to customer support and social interactions in SaaS products.
It comes with purpose-built APIs for quickly building out chat features, including realtime messaging, online status and presence tracking, typing indicators, and room-level reactions.
Built on Ably's core platform, Ably Chat streamlines the complexities of realtime chat architecture, providing a powerful and flexible solution for a wide range of use cases. Here’s how it benefits you:
Composable realtime: Unlike chat-specific products or building your own solution from scratch, Ably offers the best of both worlds - full flexibility to build what you want, and quickly.
Dependable by design: We’ve built a realtime experience platform engineered for predictable latencies, ensuring uninterrupted service, capacity and availability across regional and global levels, even at extreme scale.
Cost optimizations: Our flexible pricing model—offering customizations like per-minute billing, consumption-based pricing, and volume discounts—is tailored for operations at scale. And soon, upcoming features like batching and aggregation will help keep costs low.
Ably's network
Our globally-distributed, multi-region infrastructure offers unrivalled guarantees around performance, data integrity, reliability, and scalability:
<50 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
Read how Ably can help you build realtime chat experiences into your applications with global reach, massive scalability, and a developer experience designed for productivity.