Why add messaging to your app?

Fundamentally, people are sociable, our lives revolve around our friends, family and colleagues.

Adding messaging to an app completely transforms the user experience. The app stops being an island and starts becoming a community where passionate people can share a common interest. When this happens, the app becomes far more compelling because it starts to take on a life of it’s own.

ENGAGEMENT Turn your app into a community, let your users make friends with each other. Seeing that they’ve received new messages makes them much more likely to open your app!
SOCIAL People like to share their achievements with their friends. They like to discuss their latest progress and compare results.
WORD OF MOUTH When people are part of a community, they are much more likely to invite their friends. This word of mouth promotion will drive downloads and sales

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.

Hosted solutions

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.

XMPP

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
OPEN SOURCE
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.

DATA CONTROL
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.

QUICK INTEGRATION
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.

SIMPLE LICENSING
The Chat SDK is free and open source. It’s licensed under the MIT license which is very flexible and commercially compatible.

We offer a unique product that has major benefits. We want to provide you with the tools to add messaging to your app as quickly and easily as possible while giving you complete control over the source and your data.

OPEN SOURCE Our products are fully open source. This gives you the maximum amount of flexibility, you can customise the chat framework to your own needs.
FAST TO DEPLOY We provide a fully functional demo project. Once you download the SDK, you can be up and testing in under 30 minutes. If you want to modify the UI, you have the source code so you can! Our customers can fully integrate messaging into their app in under 2 days.
SCALABLE We offer two back end options – Firebase and XMPP. Firebase is a real-time back end provided by Google that can support millions of concurrent users. XMPP is the industry standard for a self-hosted messaging system.
SUPPORT Each license comes with at least 30 days support and one year of updates and bug fixes. We also have time available to help you customise the Chat SDK. We can add it to your app and make any customisations that you require.
Background