Why we chose Telegram for team-app over Slack and Microsoft Team, and then moved away from it — lessons learned from building a team app

A cautionary tale about the mistake we did in using Telegram source code. This article can serve as insights and possibly a warning for those who are considering using it and also discusses a very capable open-source alternative!

Jim
9 min readSep 13, 2020

We are a medium-sized company primarily developing softwares for the banking and finance sector. We recently built a team app for our company. The goal of this article is to show how we build a secure team app and the various options we went through.

Most of our workforce consists of software engineers. When we started as a small company with a few employees, things were smooth sailing. We just used regular old fashioned Gmail to manage tasks and company-wise decisions. For more personal and internal communication we used WhatsApp. With everyone familiar with WhatsApp, it was easy to quickly send messages to groups. However, as we grew, the gmail+WhatsApp formula was overwhelming.

Then the pandemic happened and most of us had to move to work remotely, We were not using many enterprise productivity tools. It was getting increasingly difficult to communicate and connect.

Things appeared to be spiralling out of control and we decided that it was high time we had a proper team communication channel. We started looking at recommendations and what others were also using. The most popular choices were Slack and Microsoft Teams. We decided to try out Slack since Microsoft Teams was more inclined towards using a complete package of Microsoft Tools and we were not using many Microsoft tools and services.

Slack

Slack had an overwhelming UI and feel. However, many features were not needed at all and the UI is not similar to other communication apps we are familiar with, for example, WhatsApp. Also, with a per-user price plan at around $7 a month, adding to the base price it was far from sustainable. Moreover, as we were rapidly growing our workforce it would not be prudent to estimate costs on current size. The subscription cost would only continue to grow in our case.

Overwhelming Slack UI

Slack and GDPR — a big red flag

Another red flag was GDPR and privacy. As we operate under the EU Regulations we are regulated by GDPR that covers both employee and customer data. So, we reached out to Slack with our concerns, and the support team referred us to their GDPR page. However, it wasn’t helpful and in fact, we failed to get any affirmative answers from the Slack on their EU server locations. Being in the finance sector, compliance with the regulations is extremely important to us. One possible solution was to deploy Slack on our servers and then go about protecting our data. But, it turned out there was no option for deploying on-premise.

There were other solutions at the lower end of the price bracket with less impressive features, but none of them matched what we exactly needed.

Here’s what we needed:

  1. One-to-one and group communication with an easy interface
  2. Assured Secure and privacy. We are concerned about keeping our data under control, as we deal with a lot of sensitive financial data.
  3. A one-time investment cost that should support us for a longer time

Since both Slack and Microsoft Team were not sounding so favorable, we decided to check the possibility of developing a solution in-house. We didn’t expect an easy ride but when we found the source code of Telegram on GitHub (https://github.com/DrKLO/Telegram), we were excited and also relieved, the task was possibly easier than we initially anticipated.

Telegram

Telegram needs no introduction, a great platform for secure communication. With major communication tools like WhatsApp, Messenger, etc. were being compromised, remarkably, Telegram- a free, cloud-based platform with strong encryption has stood its ground. There were no reasons to look elsewhere, we decided to build our communication tool based on Telegram.

But, surprises were waiting for us, not in a pleasant sense though. When we started to build our app using the Telegram source code, we realized problems hidden in plain sight

Telegram is not a full-fledged SDK

Telegram is not an SDK or API platform. Although the Telegram messaging application on its own is a well-built tool, it offers nothing to extend or replicate the same into your application. The API was far from complete and offered limited support to custom features.

Telegram in their defence, mentions that they are an open-source App, not an SDK. They have put all of their code out in the open and expect you to figure it out on how to use it.

Restrictive Licensing

We did not mind putting in a lot of effort and time in “figuring out”. But, what was a complete deal-breaker was the condition of publishing the resulting solution to also be open-sourced.

https://core.telegram.org/api/terms

No branding

And restriction continues. Although, the Telegram is an open-source application, you cannot use the source code of Telegram and rebrand it if requires. There is hardly any scope for building a completely independent application. Any application built on top of Telegram needs to display Telegram’s logo prominently. This completely defeats the purpose of a branded application for our company.

https://core.telegram.org/api/terms

Not Standalone

When you build your application with Telegram, it, in turn, syncs up with the Telegram account linked with the user and other Telegram Metadata. But, this is not an optional step. Your application cannot be built as a standalone entity or use your own authentication. The only thing Telegram APIs allowed was to interface with their data and quirks. This poses a problem with user management in an enterprise environment.

Not On-Premise

Using Telegram to build your application means that we connect with Telegram Cloud Servers. We were getting into the same issue as before.

If you wish to host Telegram on your servers it is a no go. Being in banking and finance sector, we have to deploy the app on our servers.

Not an extendable codebase

There was no easy & reliable extension API to build on top of the base platform. It looked like Telegram served only to be used as a ready one-time app, with no additional features that we can modify.

We also came across many others reporting similar concerns and issues with Telegram, like this one, which had we read before, would have saved a lot of time. Disappointed with the current solutions, we went about looking for better solutions — a solution that worked precisely to our needs.

We started looking for more solutions and came across many good products like Firebase from Google which we felt was needlessly complex and pricey. We also received some suggestions for using some messaging API platforms like Sendbird and Agora, which we weren’t completely convinced with. At one point, we were frustrated and one of our engineers suggested that we should build the entire thing from scratch! Completely insane idea. But yeah, we were quickly running out of both time and options.

And then We then found Mesibo.

Mesibo

mesibo is a relatively new entrant but seemed like the powerful solution we came across. The more we dwelled into mesibo, the more we fell in love with the platform and capabilities it offers, at the cost of almost nothing.

Finding Mesibo

We came across mesibo from their open-source messaging app called mesibo Messenger available for both Android and iOS. We figured that the UI was reasonably good and without any distracting features. All our employees could use this application easily without any learning hiccups.

Since, the entire source code of the app is available on GitHub, we looked into how we could customize this app. We wanted to use our company colors, banners, logo and more importantly integrate it with our internal employee desk. Fortunately, mesibo provides Android, iOS and other SDKs and we were able to quickly customize the app. Good part was that there was no restrictive license like Telegram or exorbitant pricing like Slack.

We noticed that compared to the apps we used earlier like Slack and Telegram, the messages and file exchange speed appeared to be better and importantly, we can use our own servers to store our data. Our teams exchange a lot of large Files and images of receipts who reported that sending files on the app we just built was much faster.

One problem we faced was that the mesibo demo apps use the Phone-based authentication while we wanted to use our own employee ID. This required us to create new screens to replace phone-based authentication in mesibo demo app.

GDPR and Mesibo On-Premise

Now, this app was hosted on the mesibo cloud. Although the platform was GDPR compliant we preferred to host the app on our servers. Our main reason to do so as we could not risk any breach whatsoever of our own internal and private communication data. Fortunately, the entire mesibo platform can be downloaded freely.

With the mesibo on-premise solution, we decided to host mesibo on our server and then run the app through it. We downloaded the mesibo docker image which ran without any issues on our servers. Documentation is quite clear. If you have ever setup a web server and the database before, it is will only take less than an hour to setup entire mesibo platform on your own server.

Pricing — a huge saving

The pricing made much more sense to us as it was based on monthly active users (MAU), and at just $ 0.01 per MAU per month (compare to $7 per user per month of Slack). It is practically a great deal, with over 300 employees, it just around $3 per month all together. Imagine, it would have costed us $2100 if we have used Slack instead. It also turned out their pricing was even cheaper for on-premise as there were zero data storage costs. Also, we also had the option to create multiple apps for different divisions in our office and manage all of them under the same central account.

One-to-one and Group Calling (conferencing)

This was unexpected — we didn’t even start with these features in mind, but we got them completely free with mesibo. With mesibo, we could have unlimited voice and video calls. mesibo also provided video conferencing features along with an open-source web app that we modified with our own brand & colors to integrate with our website, no more Zoom.

We found it especially useful because there was no limit on call duration or the number of participants in a meeting and we received feedback that the call quality was much better. Our team communication channel seemed complete with video conferencing and messaging.

We also added some more features like displaying the org chart and see who’s currently online. There are a lot of interesting features to mesibo which we yet to explore and experiment with like the chatbot scripting service. This could be useful for creating an interactive HR Chatbot that employees could connect with for managing small tasks like applying to leaves, etc.

With great features like non-restrictive license, brandable UI, video conferencing, and on-premise deployment, mesibo ticked all the right boxes for us, and we are still exploring the various features. It is worth noting that while tools like Slack and Microsoft Teams are continuously getting better in terms of flashy features, they do not seem to get better in serving the privacy needs. Telegram has a long way to go in getting more things right for its users.

We will certainly write about our experience after we use more of this platform. Do comment if you have any questions.

--

--

Jim

Graduate Research Assistant at University of Michigan