RangeX scores a target in 20 seconds.Read more

Technology

Stream vs Sendbird vs PubNub: In-App Chat SDK for Startups

Pick Stream for most startups adding chat to a consumer or marketplace app, because the UI kits and docs get you to a working inbox fastest. Pick Sendbird when moderation and enterprise support matter, and PubNub when chat is one of several realtime features.

Nate Laquis9 min read

The Short Answer

Pick Stream for most startups that need chat inside a marketplace, community or social app. Its React Native, Swift, Kotlin and React UI kits give you an inbox, threads and typing indicators in a few days, and the pricing is easier to forecast than the other two. Pick Sendbird when you sell to enterprises or run a large, moderated community and want a vendor with a deep moderation toolset and a sales team that picks up the phone. Pick PubNub when chat is only one of several realtime features, such as live location, presence and device signals, and you want one messaging layer under all of it.

If your chat is a single support thread between a customer and your team, none of the three is the right call. A table in Postgres, Supabase Realtime and a day of work will do, and it costs nothing per user. More on that near the end.

Smartphone showing a messaging app conversation

The rest of this piece covers how each vendor charges, what you actually get in the box, where each one hurts, and which product situations map to which pick. If you are still deciding how much realtime infrastructure you need at all, read our comparison of Ably, Pusher and Supabase Realtime first.

Why Founders Reach for a Chat SDK

Chat looks small on a feature list and turns out to be one of the more expensive things to build well. The first version, a text box and a list of messages, takes a weekend. Then the real requirements show up. Messages have to arrive while the app is in the background, which means push notifications that deduplicate. Unread counts have to be right on three devices. Users need to block and report each other. Images need uploading, resizing and scanning. Someone needs to search history. Read receipts, typing indicators, threads, reactions and message edits each add a week.

A chat SDK sells you that backlog as a product. You get the message storage, delivery, push, presence and a set of prebuilt screens, and you pay by active user or message volume. For most startups the trade is good in the first year and gets harder to love at scale, which is why this decision deserves ten minutes of arithmetic before you sign anything.

The question underneath is how central chat is to your product. If people come to your app to talk to each other, like a dating app, a creator community or a tutoring marketplace, chat is the product and owning it matters. If chat is a supporting feature, like messaging a driver or a seller, renting it is almost always right.

How Each Vendor Charges

Pricing is where these three differ most, and it changes often, so treat every number here as a shape to check against each vendor's current page, not a quote.

Stream

Stream prices chat on monthly active users and concurrent connections, with a free tier for small apps and startup programs that discount the first year. Paid plans start in the low hundreds of dollars per month and climb with MAU. The model is predictable because a user who sends ten thousand messages costs the same as one who sends ten. For a consumer app, that favors you when engagement is high.

Sendbird

Sendbird also prices on monthly active users, with tiers for chat, calls and a separate moderation product. Entry plans sit in the same rough range as Stream, but enterprise contracts are negotiated and the add-ons (advanced moderation, data export, uptime commitments) are where the bill grows. Expect a sales conversation once you pass a few tens of thousands of users.

PubNub

PubNub bills by transactions, meaning messages published and delivered, plus add-ons for storage, presence and push. This is the cheapest model when chat is light and the most surprising when it is heavy. A busy group channel with five hundred subscribers turns one message into five hundred deliveries, and the invoice follows.

A quick way to compare: estimate monthly active users, average messages per user per day, and average channel size. If messages per user are high and channels are big, MAU pricing (Stream, Sendbird) wins. If most users barely chat and you need realtime for other signals, per-transaction pricing (PubNub) can come out cheaper.

What You Get in the Box

Feature lists overlap so heavily that they stop being useful. What matters is how much of the screen work is done for you and how hard it is to bend.

UI kits and developer experience

Stream has the strongest prebuilt components. The React Native and SwiftUI kits give you a styled channel list, message list and composer that you can theme and override piece by piece. Sendbird's UIKit is good and a little more rigid. PubNub is the most low-level of the three: it is a messaging pipe with a Chat SDK on top, and you will build more of the interface yourself. That is a feature if you want full control and a cost if you want to ship in a week.

Moderation

Sendbird leads here. Profanity filters, user reporting, automated rules, message review queues and a dashboard for moderators are mature. Stream has solid moderation tooling too, including AI-assisted detection, and it is enough for most apps. PubNub gives you hooks and functions to build moderation, which means you build it.

Push, offline and reliability

All three handle push delivery and offline sync, and all three have had incidents like any hosted service. The differences show up in the edges: how they handle a user logged in on two phones, how unread counts recover after a long offline period, how they rate limit a spammy client. Ask each vendor for their status page history and read the last year of it before you commit.

Analytics dashboard showing message volume and active users

Beyond chat

Sendbird and Stream both sell voice and video calls, and Stream sells activity feeds. If you will want one vendor for chat, video and a feed, Stream's bundle is the tidiest. PubNub's strength is the opposite shape: pub/sub for anything. Live location pins, a presence list, an IoT device status, and chat can all run on the same channels.

Where Each One Hurts

Every vendor demo looks great. These are the problems that show up in month six.

Stream gets expensive once you have a large free-tier user base that you cannot monetize, because MAU counts everyone who opens chat. It also pushes you toward its data model for users, channels and members. If your product already has a rich user table, you will sync users into Stream and keep the two in step, which is a small but permanent source of bugs.

Sendbird has the heaviest sales motion. The self-serve tiers are limited, advanced features sit behind contracts, and migrating away later is painful because your message history and user IDs live in its format. The UIKit is also less flexible when your designer wants something unusual.

PubNub asks the most of your team. You decide how to model conversations, how to store history, how to handle read state. That freedom is why teams building something unusual pick it, and why teams that wanted a chat inbox in a week regret it.

Lock-in is the shared problem. Before launch, write a script that exports one conversation from the vendor into your own database. If you cannot do that in an afternoon, the exit will cost you a month later. We cover this pattern more broadly in our guide to building an omnichannel messaging platform, where owning the message log is the whole point.

When to Skip All Three and Build It

A hosted SDK is the wrong answer more often than vendors admit. Build chat yourself when any of these are true.

  • Chat is one thread per customer. A support conversation or a booking message thread is a table with a sender, a body and a timestamp. Supabase Realtime or Firestore will push new rows to the app, and you add push notifications through Expo or FCM. Budget one to three weeks for a clean version.
  • You need end-to-end encryption. Hosted SDKs encrypt in transit and at rest, but they hold the keys. If your promise is that nobody but the two parties can read a message, read our piece on building an encrypted messaging app. That is its own architecture.
  • Chat is the product and you expect more than 100,000 active users. Per-user pricing at that size can fund an engineer. Many apps start on a vendor and move to a custom stack on Postgres, a pub/sub layer and a push service once the numbers justify it.
  • Your data has to stay in one region or one cloud. Healthcare, legal and some education apps carry residency rules that a shared vendor cluster may not meet.

For a custom build, a rough range is $15,000 to $40,000 for a solid first version with channels, push, media, unread counts and basic moderation, and two to three months of calendar time. A vendor integration with a themed UI kit is usually $5,000 to $15,000 and two to four weeks. Those numbers move with scope, but the gap is real, and the vendor wins for the first year in almost every case.

A Sample Cost Comparison

Take a marketplace app with 20,000 monthly active users, where about 30 percent open chat in a month, and the average chatting user sends 15 messages a day in channels of two people.

  • Stream or Sendbird: you are billed on the roughly 6,000 chat-active users. Expect a monthly bill in the high hundreds to low thousands of dollars on a standard paid plan, depending on whether you add moderation and calls.
  • PubNub: 6,000 users times 15 messages times 30 days is about 2.7 million messages a month, each delivered to one other person, so roughly 5.4 million transactions before presence and push. That lands comfortably under most paid plans, and it is the cheapest of the three at this shape.
  • Self-built on Supabase: a database and realtime tier in the low hundreds of dollars a month, plus an engineer to own it.

Now change one assumption. Make the channels groups of 200 people. PubNub's transaction count multiplies by about 100, and the order flips: Stream's flat MAU model becomes the cheap one. The point of running this exercise is to find which assumption your bill is sensitive to before it is a surprise on an invoice.

Developer working on a laptop with code on the screen

Which One for Your Product

Here is how we would map real product situations to a pick.

  • A two-sided marketplace where buyers message sellers: Stream. The UI kit gets you a polished inbox fast, and MAU pricing stays sane because most users send a handful of messages.
  • A community or creator app with public groups and heavy moderation: Sendbird. The moderation console and reporting flows are worth the sales process.
  • A live event or sports app with thousands of people in one channel: Stream or Sendbird, not PubNub, because per-delivery pricing punishes large rooms.
  • A delivery or logistics app that needs live location, status updates and a driver chat: PubNub. One pub/sub layer serves all three signals.
  • A booking app where customer and provider exchange a few messages per job: build it on Supabase or Firestore and skip the vendor.
  • A telehealth or legal app with compliance rules: build it, or use a vendor with a signed BAA and regional hosting, and confirm that before the demo, not after.

Whatever you pick, keep your own copy of users and conversations, put the SDK behind a thin interface in your code, and test the export on day one. For a rough idea of what chat does to the total price of a product, see what it costs to build a social media app. Kanopy helps founders pick a stack and build the product on it, including the decision of when to rent chat and when to own it, so book a free strategy call and we will talk through yours.

Stream vs Sendbirdin-app chat SDKPubNub vs Streamchat API for startupsbuild vs buy chat

You picked the stack. We ship the product.

Thirty minutes. You leave with a plan and a number.

Book a free call