If you're considering implementing a chat within your app, you have a few options: you can either develop a solution suited to your needs or choose from a few ready-to-use tools. I was curious about the features available and the most popular solutions on the market. In this article, I'll provide a general overview of the possibilities of several SDK solutions.
Disclaimer: The article is based on information on websites with SDK solutions. I compared the raw data to check the advantages and disadvantages of the offered tools with no deep dive into libraries and code.
Free libraries are using Firebase modules for their chat engine. They use mostly Cloud Firestore, which is free. If you stick with the Firebase free plan (10GB / month) for the module - it’s about 500k logins and 5 million messages. If you exceed the limits, Google will require a paid subscription to extend your capacity for the chat. Here you can learn more about the details: https://firebase.google.com/pricing
Pros:
• Library is open source and free Integrated push notifications
• One-to-one and group messaging
• Message history are available in offline mode
• An indication that the user has read your message
Cons:
• Poor UI, there would be much to do to customize it
• Not updated too often, high risk of having deprecated stuff in the project
• No reply action supported out of the box
• Most of the functionalities you can write with the help of tutorials and manage them on your own
My impression: A free SDK that helps developers set up and integrate a chat within an app quickly. It is worth mentioning the features such as receipts of reading or typing indicators. The solution is based on Firebase, so a Google account is required. Unfortunately, the documentation is quite poor and outdated.
Pros:
• The Chat SDK is open source and free for commercial apps Push notifications
Cons:
• There are things you need to pay, to have enabled in the SDK (read receipts, typing indicator)
• No standard support for replies
My impression: I have mixed feelings about this chat because most of the features that are paid here can be obtained in different SDKs for free, and it's also based on Google Firebase. It's worth a try if you want to have encryption enabled and video messaging. Unfortunately, both modules are in the paid plan. Only standard things like one-to-one and group messaging are for free.
Pros:
• You can edit and remove messages
• Push notifications
• Typing indicator
• Good documentation
• Wide UI options
• Integration ecosystem with the app
Cons:
• No standard support for replies, BUT in the documentation, there is a description, where to start adding that feature on your own.
My impression: Twilio has very comprehensible documentation, a wide range of features, a library to customize the UI of the chat, and assures quick customer support. It appears to be the right choice for building the community, primarily because the pricing is based on the number of active users.
Pros:
• Integrated reply in their SDK
• Giphy, emoticons and file attachments
• Threads links
• Search in messages and conversations
• Video playback
• Online statuses
Cons:
• High price (499 USD/month)
My impression: A robust SDK with numerous customizable features and extensive UI options to modify the chat, such as reply/thread options for messaging. The pricing spans a wide spectrum of features, making the cost of using this tool relatively high right from the start. Nevertheless, this is still my top choice.
Pros:
• Push notifications
• Auto-translations
• Share encrypted file
Cons:
• No standard support for replies
• High prices, starting at 399$/month
My impression: A robust SDK, similar to getstream.io. Interesting features are sharing encrypted files and autotranslations within the chat. It could be an option for companies that want to have user support for the products worldwide. Unfortunately, prices may be challenging for fresh startups.
In this comparison, we have various libraries, with a free, freemium, and paid model.
Depending on the needs, the client can choose between basic or complex solutions with a plethora of "out of the box" options. Different tools require varying implementation and maintenance costs.
If you require the rapid implementation of an advanced chat with a wide range of features, Sendbird or Getstream should meet your expectations. However, you should be prepared for high costs.
Twilio may present a reasonable option. This solution offers numerous useful features with quick implementation and the possibility of further function development. Well-structured documentation and libraries built on Google Firebase simplify the work. Features like push notifications and message counters are free, while others, such as data encryption, come with a cost. Twilio provides a convenient payment model based on the number of active users, without subscription fees.
On the other hand, in most cases, a small company or a startup does not have to use advanced features at an early stage. For testing the usage, stability, or needs, Chat21 and ChatSDK should be enough. These tools offer functions that meet the basic requirements. However, I must note that a small team of experienced software developers can develop and maintain such SDK solutions within a reasonable time.
The presented solutions will probably meet most of the requirements of companies from small startups to large companies that want constant communication with clients. Solutions vary in their level of complexity and price.