At this point we've all seen many chat apps - some very popular and some not. Some very secure and some not. Some very centralised and some not. The difficult thing when choosing a chat app is that the most important differences are not something you can intuitively find out when you're already using your chat app, because this is more a question of how each chat app was designed from the beginning.
What we are going to do in this post is that we will talk about what we have used as chat so far and why, and we will discuss what you need to consider when making a decision for yourself.
Each community or individual has a different need for the chat and what's best for others does not necessarily mean that's going to be the best for you. Before starting we want to give you an idea about who we are.
The evolution of our chat was really finding what fits us the best. We have started our team chat at Slack many years ago, then we moved to Rocketchat, and then we moved to Mattermost. While keeping Mattermost running, we started our Matrix instance on the side. We have gradually moved more to Matrix over time and now have most of our main conversations in Matrix. There were reasons for each of our moves, we will explain them below.
We (ungleich) are a company working with Free and Open Source and Linux. Our work happens around many text information and we have many parallel projects shared with people from different timezones. This requires our chat to be as efficient and organised as possible, so that everybody can get their work done and collaborate easily. This was the reason why we were initially landing in Slack which has an interface suitable for our work life. Apps designed for more casual, mobile use such as Telegram and Signal did not fit our need.
We need to mention that for a Swiss company like ourselves that physically runs our servers with local hydropower, we knew that it is senseless to have our chat somewhere in the U.S. (whose privacy laws we do not trust) run by servers with fossil fuels. That's why we soon moved away from Slack to chats that we can host on our own. We first moved to Rocketchat, and although the transition was easy and smooth at the beginning its mobile version was not as smooth as we liked it to be at that time and our team would miss getting messages often while on the run between different data center locations. After spending some time with Rocketchat we moved to self-hosted Mattermost looking for a more stable experience. With its robust performance and friendly UI (that we still think is the best out there), our team became quite happy with Mattermost.
You might have noticed that we are not the most typical company, renewable-only energy driven Linux, FOSS and IPv6 aficionados in the Alps. This means we attract quite some people who have a lot of stories and chats to share with us. So the thing about our work chat is, that it is not only for our internal work - but it's also for a community chat, a community with very diverse backgrounds for that matter. Hobby computer lovers, mountain lovers, hackers and makers, climate activists, penguin lovers, you name it.
While happily staying on Mattermost we started to receive requests from our community for enabling our chat to be more decentralised: meaning not all the chat data staying in our server only (centralisation), but enabling others to connect from their servers too. (decentralisation)
This was a fair request and we knew it was the right way to go. As a solution we started to phase in Matrix into our chat - we first started it as a side chat from our main channels in Mattermost.
Over time we moved most of our conversations to it, while keeping Mattermost on the side. With Matterbridge enabled this dual system has been working quite well, and it is especially useful when one of the instances experiences downtime.
## What you should consider when choosing a team chat
Above was our specific case and you probably have a different use for the chat app. Should you consider Matrix? Mattermost? Or Slack? Some questions need to be answered first to see what your requirements are.
This depends on what your use case is. Are you looking for a secure version of SMS, or are you looking for an organised place for different groups and tasks to be handled? The former fits the use case of Signal, Telegram, Whatsapp, Skype, and the latter is better handled by Slack, Mattermost, Rocketchat, and Matrix. We are not implying that all these chat apps have the 3 baselines passed, but just giving you examples.
This is closely linked to the #1, because the chat apps that function as SMS replacement such as Signal, Telegram, Whatsapp, need a phone number to work. So if staying anonymous is an important factor for you this is something you want to consider in choosing a chat. For using Matrix or Mattermost you do not need a phone number, and in the case of Matrix you do not even need an email address that can identify you.
This is something most people don't think about: the physical location of the servers where the chat is running. It mostly becomes a crucial question in two ways.
One is if you face the possibility of having to deal with authorities - meaning you need to care which law will apply in case you are being investigated.
Two is if you care for the environmental and ethical impact of your servers, such as what kind of energy source is being used and what is the ethical stance of the hosters.
The ability to decide where your servers will physically be, either by running the server by yourself or by somebody you can trust is a big difference between some chat apps and others. Chats that offer home servers, self-hosted options such as Matrix or Mattermost give you the ability to choose, and any chat app that does not, locks you in the chat provider's choice.
Does all of our conversation only go to one company in one country, or can it be in the different small or big streams everywhere and be independently open to each other? Most chats out there are the former, and federated chats are the latter.
Say there's a special house where everybody goes to for communication, and you have to go there whenever you want to talk to anybody, and the conversation stays only in that house. Anybody who wants to say anything to anybody, has to go into this house. Doesn't it sound really strange? That's what most chats are.
But what if we can stay in our own home and call each other and still can have a conversation? And the conversation does not only stay in one house, but in everybody's house for when it's their own conversation? That's more like how Matrix imagined how chats should work.
This is the single most standout identity of Matrix, that it has built-in federation. Means you can stay on your chat and go to other Matrix instance and talk to them.
### 5. Are you into the latest, hottest technology
It might sound silly but it is still an important factor for a lot of early adopters and people who just gotta have their hands on the latest groundbreaking stuff (cough). This is it. Matrix is the hottest chat system of 2021 and hands down the most innovative project amongst all the chat apps out there because of its federation and security design.
A lot of us brush off the topic of privacy thinking "But I don't have anything to hide." but it is not that simple. Even though you might not have anything to hide now, people who you have a conversation with might have a very different stance and you affect them with your choices. Using a chat app for communication involves the privacy of everybody in your network - family, friends, colleagues, and more. That's why whatever chat you choose, there should be some baselines you shouldn't compromise. These are what we think is important in choosing which chat to use in 2021.
As a very base your chat should have End-to-End Encrypted (E2EE). E2EE means even when the 3rd party (including law enforcement or the hosting company itself) snoops into the chat data, they will just see a series of useless encrypted texts that can not be (at least easily) decrypted.
Not all chats have proper E2EE and especially not all chats have it as default. Matrix has E2EE as a default for example, and Telegram does not. It works quite the opposite way in fact: disabling E2EE has to be manually opted in Matrix, whereas enabling E2EE can be done only by choosing "Secret Chat" Function in Telegram.
## The baseline 2: Not collecting your data
Even when the chat app can not read your conversation thanks to the encryption, some chats do access a lot of other information, such as with whom you are talking to for how often and for how long. We tend to focus on not revealing the content of our chat and to forget that the other information can be collected while being unnoticed.
Whatsapp is a particularly risky choice for this reason, because it belongs to Facebook whose entire business model relies on collecting user information for monetisation.
The thing about closed code is that nobody outside the chat app company can see how and what is built in the chat. Is it having some back doors users are unaware of, is it monitoring the user activity without letting the user know, with closed code we will never know.
So for a chat (or any software for that matter) to be claimed secure, its code has to be open for the public, so unbiased third parties can review its sanity. If you think about it, it's quite simple - no system can achieve robust integrity without transparency.
When it comes to technology, the best approach is trying it yourself. Our ungleich chat, both Matrix and Mattermost, are open for anybody to join: we heartily invite you to give it a try. Create an account, join rooms, say hi and ask questions you might have.
We claim our chat is one of the safest places to try a chat app you are not sure about yet - it does not collect your data, it does not need your phone number, it runs on 100% renewable energy.