So you decided to add messaging to your app, now how do you know if you’re getting value for money? Every business needs to make money so every company that provides messaging services needs to earn revenue from somewhere. To compare different options, you need to understand all the costs that are involved.
LICENSING A software license gives you permission to use a piece of code that has been developed by someone else. They are hoping that by selling a large number of licenses, they can offset the initial development cost and the ongoing maintenance and support costs.
HOSTING When a company lets you use their servers, they will usually charge you based on that usage. Some companies have a free tier but when your usage increases, you will then have to start paying for the volume of data you use. The money you’re paying offsets the investment the host made buying and running the servers as well as providing them with a profit.
SETUP AND INTEGRATION Any messaging system must be integrated with your product. That takes development time. You would either need to do this work yourself or hire a consultant to do it for you. Most SaaS messaging services will provide an SDK to communicate with their servers and some UI components but a significant amount of work may still be required to build a full messaging app.
CUSTOMISATION No software product will fit your needs 100% so it will be necessary to make some modifications before it can be added to your application.
To determine whether a messaging solution provides value for money, you need to consider all of these costs. We will look at some existing SaaS solutions and look at the costs involved in three different scenarios.
1) An app that is just starting out
2) An app that’s gaining traction and has 10k daily users
3) An app that’s popular and has over 100k daily users.
Example 1 – Quickblox
Lets look at Quickblox for our first example.
Firstly, we can see that there are no licensing costs. Next lets look at hosting. Our small app would be fine on the starter tier so they would pay nothing. Our app that’s gaining traction would probably fit with the pro tier assuming that some of their daily users would be returning users. The popular app would need to go straight onto the large tier because they could easily have over 500k different users per month.
Now lets look at the other costs. The Quickblox SDK is very basic so it would be necessary to write the whole messaging user interface. A conservative estimate to build the user interface and integrate it with our app and the Quickblox API would be 2 – 3 weeks. If a consultant were hired to do this charging $60 per hour, the cost of the integration would be around $5000. Of course, if the developer did it themselves, they wouldn’t actually have to part with any money.
STARTER APP 2 – 3 weeks work
MEDIUM APP 2 – 3 weeks work plus $219 per month
LARGE APP 2 – 3 weeks work plus $2399 per month
Example 2 – Pubnub
With Pubnub, there are no licensing costs so we can skip that step. Our starter app would fit into the free tier with little difficulty. Our medium app would need to go straight to the scale tier at $799 per month! For our popular app, we would need to request a quote for custom pricing.
Pubnub doesn’t provide many UI tools so we would be faced with building the UI and integrating it with Pubnub ourselves.
STARTER APP 2 – 3 weeks work
MEDIUM APP 2 – 3 weeks work plus $799 per month
LARGE APP 2 – 3 weeks work plus $??? per month
Example 3 – Pusher
Whereas the previous services offered a messaging backend, Pusher is a real-time data service. It provides you with the tools to send data between users through channels. This makes it a little difficult to compare with the others, but using some assumptions, it is possible.
Pusher charges based both on active connections and the maximum number of messages per day. Assuming that each user spends an average of 10 minutes messaging each day, this means that on average, each concurrent connection can support around 150 daily users. This means the free plan could potentially support around 14k daily users. There’s a limit of 200k messages per day so each user would be able to send 14 messages on average before the limit was reached.
Our starter app could easily fit into the free plan, our medium sized app would probably run on the $49 per month plan and our large app could run on the $299 plan. This represents much better value than the previous services.
There is a caveat however, since Pusher is just a data deliver service, it would be necessary to develop a messaging user interface and a whole messing protocol. Essentially, Pusher will get your data from device A to device B but nothing else. Developing a full messaging stack based on Pusher would take around 4 – 6 weeks.
STARTER APP 4 – 6 weeks work
MEDIUM APP 4 – 6 weeks work plus $49 per month
LARGE APP 4 – 6 weeks work plus $299 per month
Example 4 – Firebase
Firebase is quite similar to Pusher in that it’s a real-time database rather than a messaging service. There are no licensing costs and they charge based on the number of connections and data usage.
Firebase allows unlimited connections on everything apart from the free tier and only charges based on data transfer. To compare it directly to Pusher, we would need to make an assumption about the average message size. If we assume that most messages will be around 100 bytes then the free Firebase tier would support 100 million messages per month or around 3 million messages per day. The Flame tier would support 6 million per day. This means that Firebase is a bit cheaper than Pusher.
With Firebase, our small and medium sized apps would easily fit into the free plan. From experience working with a large app, I know that the hosting cost for 100k daily users is around $200 per month.
Since we built mobile messaging apps using Firebase, we know that the development time required to make a fully functional messaging client was around 6 weeks per platform.
STARTER APP 6 weeks work
MEDIUM APP 6 weeks work
LARGE APP 6 weeks work plus $200 per month
When we were deciding which back end to use, we identified Firebase as the most flexible, highest performance and best value.