If you build an app, there is a high chance that you’ll need some way of live communication. While browsing the Internet, you’ll stumble upon lots of examples with different purposes and approaches. The obvious one is apps centered around communication like Messenger or Slack. But some are more hidden, like support chat in the Uber app. Many websites include flashy “contact us” widgets that allow them to communicate with their users if they have any questions.
Once you realize that your app needs a chat too, you have a hard nut to crack - use a solution from the market or go full custom and tailor the communication precisely to your needs. There’s no need to point out that you have to accept its cons no matter which approach you choose. In order to make a rational choice, you need to consider all your requirements. For example… Do you need just plain text chat with no fancy formatting? Do you need attachments? Do you need mentions? Reactions? Do you need “X is typing”? Do you need voice or video? Do you need group chats? Do you need a custom layout? Do you need powerful administration tools? Do you need access to chat history? And most importantly, how much do you want to spend on it?
Recently we were challenged to a difficult problem - develop a chat that has all the “yeses” but doesn’t spend a fortune on it. Based on our experience we knew that going full custom wasn't a viable option so we started digging for other products with the main focus on being able to embed the chat in our app. One of the options was Rocket.Chat as we knew our client used it as their standalone chatting solution before. At first glance, it didn’t seem like something we could go with - just a Slack alternative. But to our surprise, there was a key feature for us hidden in the docs - Embedded Layout. So let's trace back to our requirements:
Regarding cost efficiency - if you already have some infrastructure capability, Rocket.Chat offers a free self-hosted plan where you have negligible running cost if you have a throughput that your infrastructure can handle. All in all, there are solutions that can render my initial assumptions, that you can’t have everything, invalid. Of course, this is no golden hammer - it still has many limitations but with your next project, you might consider using Rocket.Chat.
One additional and not so obvious benefit of using Rocket.Chat is that your users can download a fully featured app with push notifications on their Android/iOS device. So they always stay connected to you. We on our side handle everything from account creation to automatic login when the chat is embedded. But you’re giving your users the opportunity to still make use of chat features when they’re on the go (which might be very useful or unwanted depending on the case).
If you want to read about another case, take a look at our article on Zoom Integration.