What I Learned Researching Chat Provider Pricing

My comparison of the top chat services and their pricing structures – Pubnub vs Pusher vs Layer vs Sendbird vs Stream.

Full disclosure: I’m the head of sales at Stream, and we recently launched the beta for our new chat API. After 4 years of providing highly stable, fast and scalable activity and notification feeds, we’re excited to be entering this space. Unlike feeds, chat/messaging has a large number of competitors. In order to not only be competitive in the space but to also offer our clients a fresh take on an already booming market, I began a quest to research the larger companies and understand as much as possible how they price and at what levels.

This post covers what I’ve gleaned so far and how Stream’s new offering compares, but I’d love to hear more about your experiences in the comments, especially if they’re counter to what I found. I’ve sorted this list of chat providers based on how much work is required to build a complete chat solution from hardest to easiest.

PubNub Pricing

Product Overview

PubNub offers you a lower level building block for creating real-time apps. They don’t provide a chat API or the frontend for chat; they only take care of the real-time portion. While real-time is an essential building block for chat, having it be the only offering of your “chat product” requires you to build both your frontend and your chat server infrastructure on your own.

Even with that being the case, PubNub is the most enterprise-level chat provider in the market and they have an excellent track record in terms of performance, scalability, and reliability. Customers such as HubSpot, Yelp, and eBay rely on their real-time API for chat.

So far, they don’t seem popular amongst smaller companies and startups, which, in many cases, value time to market over performance and reliability.

Pricing Overview

PubNub’s pricing is very different from that of the other chat providers I’ve looked into. They price based on “Replicated Transactions”, “Edge Transactions”, “Functions Execution” and “Data Persistence”. To get a better understanding of what, exactly, that means, here is the example they give on their pricing page:

Case: A chat application that serves 100,000 customers per month, each of whom, on average, use two ten-minute chat sessions, which include 20 messages, averaging 1KB in payload, in each direction between customer and operator.

For each session:

  • 1 Edge Transaction to open the session between the client and PubNub
  • 20 Edge Transactions for receiving 20 messages (subscribing to messages)
  • 20 Replicated Transactions for 20 messages (publishing messages)
  • 40KB of Data Persistence for the 40 messages (persisting the data)
  • 1 Edge transaction to close the session

Total: 22 Edge Transactions; 20 Replicated Transactions; 40KB written to Storage & Playback (Data Persistence)

Total cost:

  • 100,000 users with two session per month = 200,000 sessions
  • Total: 4.4M Edge Transactions, 4M Replicated Transactions, 8GB written to Storage & Playback
  • Total Cost:
    • Edge: 4.4M * $0.000020 = $88
    • Replicated: 4M * $0.000075 = $300
    • Data Persistence: 8GB * $8 = $64
    • Grand total: $452/month

From what I gathered, in this example, they have 100,000 MAU, are doing 2 million messages and are retaining the full 2 million messages. There’s another caveat though – the number of sessions is a factor. So if your 100k MAU talk every day (with 2 sessions per day, per the above example), then the cost is 15x right? That’s how I read it, which brings the total to $6,780. This pricing model could, undoubtedly, be tricky to predict...

Additionally, it’s not clear how features such as typing indicators, user presence and read status indicators would impact pricing.

Pusher ChatKit Pricing

Product Overview

Pusher goes a step further than PubNub in that it provides real-time infrastructure, as well as a relatively barebones chat API. From our perspective, Pusher is much closer to providing a full chat solution than is PubNub and, thus is a “friendlier” solution, especially if you don’t have a dedicated dev team at your disposal to help you implement your chat product. You probably still need to do some heavy lifting to extend their chat API and would still need to build your own frontend, but it’s less work than doing so with PubNub.

As an example of some of the in house efforts still required, at the time of writing this post, you can’t edit messages, add reactions or start a thread. There is also no built-in support for moderation on the chat.

Pricing Overview

Pusher is the only other company (aside from Stream) that I researched that publishes pricing for a standard plan. They have a free plan that allows you to test things out and gives you 3k MAU might, which is actually quite enough for smaller startups. Pusher’s next tier, a “Business” plan, is priced the same as Stream’s “Standard” plan ($499/month). Here’s a more in-depth comparison:

Stream Pusher
MAU 25,000 15,000
Retention 7 million messages 90 days
Messages Per Month 3 million 3 million
Peak Connections 1,250 Unlimited

You can see it’s a bit like comparing apples and oranges. The 90-day retention policy, for instance, won’t work for many apps (even if you don’t have a large number of messages you’ll often want to retain them for more than 90 days). On the surface looking at MAU alone, it seems that Pusher is roughly 66% more expensive than Stream (and as touched on previously has far fewer features).

As an added bonus from us here at Stream, our product allows you to expire messages as a way to reduce cost. The only scenario in which Pusher is cheaper is if all of your users connect at the same time and do nothing during the rest of the month (resulting in high peak connection, but low MAU).

Layer Pricing

Product Overview

Layer was able to pick up some notable wins in their early days. With that said, they recently had a pretty devastating 3-day outage that caused them, and their users, some significant pain. I’ve been told that much of the team have left and the product is primarily in maintenance mode (I have no first-hand knowledge of this).

They also recently announced that they were acquired by Engagio, a silicon valley startup that has raised some significant funding. Any time there’s an acquisition many things can change, so it will be interesting to see the strategy going forward. From what I’ve found, it looks like they will continue the shift away from a multi-use case chat solution to a more conversational marketing solution like Intercom or Drift.

Despite their fluctuations as of late, one bonus to Layer is that their chat API is more comprehensive than that of Pusher. One disadvantage, though, is that it’s heavily focused on the support chat use case. Many of their customers seem to use them for social messaging, but there are often edge cases where lack of feature set/API flexibility becomes a problem if you’re building something other than support chat.

Pricing Overview

Layer doesn’t have any pricing info on their site, so I’ve had to base my analysis on the 3 customers that provided it to me, spanning from 2017 to current. They may have changed their pricing model, but this example was taken directly from an email from one of their sales reps:

They are similar overall to SendBird’s pricing, although my data says perhaps 10-20% less. The price starts with a base level, so you choose a pre-set level like 1k or 100k MAU – that’s your annual platform license. Then there’s something called MAUth (Monthly Authenticated User). They have a rate you multiply by the number of MAUths over your base level – looks like a penny or two per user. So do some quick math: 100k MAUths is somewhere between $1-2k per month. Add that to your base level payment, which they require in full up front. Initially, Layer started out with a $75k annual base plan, but recently their prices seemed to have come down a bit. One customer was quoted $10k annual for 10k MAUths, then the additional overage. So a 100k MAUth plan is going to be close to $3k a month.

SendBird Pricing

Product Overview

SendBird is a new player in the market that has been sweeping up Layer customers quickly. They recently closed a $53m funding round, and their YC connections have landed them a few famous names as early customers such as Reddit. In polling customers of SendBird, they’ve generally had good things to say about the product. Some developers complained about breaking changes to their API though.

Pricing Overview

The common negative theme was about their sales process. Customers felt like the pricing was made up based on what they thought they could get them to pay. One customer said, “It was like buying a used car”. They also complained of last-minute add-ons that weren’t included in the initial pricing discussion that then felt like they were being nickeled and dimed. On the SendBird website, they only list Free and Custom, which backs up the idea of making up pricing for each prospect. (BTW, the Free tier allows a max of 25 peak connections, so this is more so a test/sandbox plan as very few apps will have less than 25 concurrent users).

I won’t list out specific numbers I’ve been told, but SendBird is usually the most expensive solution in the market (at least from the data I’ve collected). In some cases, PubNub might be more expensive, but that is hard to estimate (see their pricing model above) and depends on the specific chat features you implement.

Stream Pricing

Product Overview

After focusing on powering the feed technology for over 300 million users, Stream has recently announced an offering for chat. Stream provides a scalable API and infrastructure accompanied by an expanding list of SDKs, a CLI, React Components, and a beautiful UI kit.

Advanced AI based moderation, reactions, and threads are built into the API. Compared to the other chat providers we believe we offer a complete solution and give you a substantial advantage in terms of time to market. We’re adding React Native, Android (Kotlin), iOS (Swift), Angular, Ionic and Unity in the coming months (this post was written in April 2019), in addition to SDKs for all of the common backend languages.

The tech stack of Go, RocksDB, and Raft also enables Stream to offer a level of performance and reliability that’s suitable for enterprise clients. This is the reason why many enterprise customers mainly look at Stream or PubNub.

Pricing Overview

As you’ve seen in the above comparisons, we’re roughly 70-40% more cost effective than the other chat providers such as SendBird. I’m excited to have a product entering the market that has superior features, easier integration, rock solid stability and performance, and is the most cost-effective available. For someone in sales, that’s a win-win-win-win-win.

Don’t take my word for it though; get in touch. Our pricing is standard and doesn’t change from customer to customer, so you can make your own comparisons.