Comparing chat solutions

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.

Copy link to clipboard

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.

Copy link to clipboard

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,

Copy link to clipboard

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.

Copy link to clipboard

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. 

Copy link to clipboard

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.

Copy link to clipboard

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. 

Copy link to clipboard

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.

Copy link to clipboard

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

99.99%

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.

Copy link to clipboard

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

Copy link to clipboard

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.

Copy link to clipboard

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

Copy link to clipboard

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.

Copy link to clipboard

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.

Copy link to clipboard

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.

Copy link to clipboard

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.

Copy link to clipboard

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?

Copy link to clipboard

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. That's why big names like Hubspot, Webflow, and Toyota use Ably for their realtime needs.

So, what specifically does Ably offer over a dedicated chat API?

  • Wide-reaching, global network: Build a chat application that has the speed, data safety, dependability, and scalability that only a worldwide network of over 205 locations can deliver.

  • <65 ms average latency: Ably ensures quick response times for smooth chat experiences, no matter where your users are located.

  • Guaranteed messaging: Ably delivers you messages in the right order and on time, even when network conditions are less than ideal.

  • 99.999% uptime guarantee: Our dedicated team ensures Ably works round the clock, meaning your team can relax even when demand peaks.

  • Huge capacity to scale: With Alby, your chat platform can effortlessly handle billions of messages across countless channels and users.

  • Build the features you need: Ably gives you the freedom to build any realtime functionality you need. Chat is just the beginning. Ably gives you the platform to add polls, auction bidding, or even multiplayer collaboration.

For chat specifically, follow our chat reference guide to see how to build essential functionality such as:

  • Online/offline status

  • Last seen indicators

  • Edit/delete messages

  • Threads

  • Emoji reactions

  • Typing indicators

  • Read receipts

  • Chat admin privileges

  • User avatar

  • Push notifications

But it’s not just about impressive-sounding stats and features. Ably offers an outstanding developer experience that helps you deliver more, faster. With SDKs supporting more than 25 languages and frameworks, and integrations with other tools, Ably fits easily into your workflow. Whether you’re building for web, mobile, or even platforms such as Apple’s tvOS, our documentation, demo code, and developer community support you every step of the way.

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.