Why add messaging to your app?
Fundamentally, people are sociable, our lives revolve around our friends, family and colleagues.
What are your requirements?
Different messaging approaches meet different requierments
Messaging is a complex area and there are many options. It’s important to understand your requirements before you choose a messaging system.
BUDGET How much time or money can you invest in adding messaging to your app. Are you looking at a development time of weeks or months?
SCALE How many messages will be sent each day? How many daily active users do you have? The requirements of an early stage startup will be very different to those of an app with milliions of active users.
FOCUS Is instant messaging a core part of your app or is it an enhancement to try to boost user engagement?
FLEXIBILITY Do you need to be able to customize the messaging system?
HOSTING Would you like to control your message data? Would you like to run your own servers?
What are the options?
Each option comes with different advantages and tradeoffs
There are three main options to add messaging to your app.
BUILD IT YOURSELF! People will say that you shouldn’t reinvent the wheel and that it’s impossible to build a messaging system yourself but that’s not true. With enough time and effort you can! But this approach isn’t for the faint hearted, you could easily spend several months and still not end up with a viable system.
HOSTED MESSAGE PLATFORM There are many SaaS services that offer messaging SDKs along with access to their servers. This is cheaper than self hosting but can also be expensive for high message volumes. They also control all your message data.
XMPP The eXtensible Messaging and Presence Protocol is an open source messaging protocol that powers many big messaging systems including WhatsApp, Skype and Facebook Messenger. XMPP is an excellent choice because it gives you full control over the full messaging system. But you do need to host the XMPP server yourself.
Build it yourself!
What is involved with building your own messaging system?
To send a message a number of components are needed. You need to build messaging clients for each platform you want to support. Then you need to develop a back end to deliver the messages. This could be a static server that used polling to deliver messages or a real-time system like Websockets.
TIME CONSUMING You will need to write a lot of code! Each client will need to be written from scratch, you’ll need to build the server and then test everything.
EXPERTISE You will need to have a multi-skilled team available to deal with the different technologies and languages involved.
SCALE Even when you finish, there’s no guarantee that your system will scale properly.
CONTROL If you do manage, you will understand the system fully. You will have full control over the data and it will be easy to enhance and modify in the future.
What are the advantages and disadvantages of a hosted system
Hosted solutions take away the burden of running your own infrastructure or administrating a server. You just make an account, download the SDK and you can start sending messages. Each provider offers a different service. Some offer an end-to-end message delivery services, some just provide a real-time data channel between devices.
DATA OWNERSHIP When you use a hosted solution, you are giving away some degree of control. Do they have a REST API to allow you to access the message data?
COST Hosted solutions charge based on your usage volume. They usually offer attractive start packages but they need to recoup their costs somehow. This is usually when you have higher message volumes.
LOCK IN Services can make it hard for you to migrate your messaging system – this makes business sense for them but not necessarily for you.
CLIENT INTEGRATION Even with a hosted solution, there can still be a considerable amount of effort involved integrating their SDK into your app.
Hosting your messaging system end-to-end
XMPP is a stable mature technology with a number of free open source servers available. It’s a powerful, flexible real-time server that’s capable of handling messages, publish and subscribe and real-time audio and video. XMPP servers are very scalable with the ability to handle millions of concurrent connections.
SCALABLE Some of the biggest real-time communication apps in the world use XMPP: Skype, WhatsApp and Google Hangouts.
COST The server can be run on a standard hosting package or AWS. The cost just depends on the processing power and storage you need to support your user base.
EXPERTISE You will need to be able to install and configure an XMPP server. To do this you need to have some familiarity with configuring linux systems using the command line.
CONTROL When you run your own XMPP server, you have full control over every aspect of the message delivery system. You have sole access to the data. You also have access to the the source code of the clients and server.
What we offer
Our unique take on adding messaging to your app
All of our products are 100% open source. When you buy a license, you get full access to the source and permission to modify it. This gives you the ultimate flexibility.
You control your the data. Even our hosted SDK gives you access to the data via a REST API. We never have access to your data.
Our framework comes with a complete messaging app ready to compile. You don’t need to spend time building your own user interface. Just configure the server and start testing straightaway.
The Chat SDK is free and open source. It’s licensed under the MIT license which is very flexible and commercially compatible.