What is Matrix?
In order to get an understanding of what Matrix really is, it's the best to check it out directly from the official documentation.
However, to put it in layman's terms, Matrix is the decentralized communication protocol that lets you choose the (public)server that you want to use it on. It even allows you to host and use it on your server! So, you won't be locked to a specific server. And you can also communicate with your friends who are on different Matrix servers or different Matrix clients altogether. In fact, you can even communicate with friends who are using other messenger apps via Bridges.
Other messenger apps, on the other hand, won't let you choose the server/provider you want to use their services on. For example, if you use WhatsApp, you have no option to choose the server/channel. And you can't communicate with your friends who use Telegram or any other messenger apps from within WhatsApp. The same goes for LINE, Telegram, Discord, Signal, and etc.
What is the problem with other messenger apps?
The problem lies within the nature of their services. Since most, if not all, of the well known messenger apps are centralized, the providers have full control on how they provide their services. Let's see how some of them manages the privacy of your messages:
Facebook Messenger is not as safe as the others since they don't enable end-to-end encryption by default. However, they're trying very hard to make it happen sometime in 2022 at the earliest. This means, currently, most of the people's messages on their service are exposing for everyone to see. But at least, they promised you to not use your messages for ad targeting.
Signal enable end-to-end encryption by default. Their client is open source, of which you can grab the code and even run it on your own server. Nevertheless, you still need a phone number in order to use their services. If you want to use Signal without a phone number, you will have to use it on your self-hosting Signal server. But that would mean you won't be able to talk to your friends on the official Signal server since they're on the different server than you, hence the centralized nature of the services.
Welcome to the decentralized messenger party!
As you can see, all the popular messenger/communication apps from above have one thing in common, they're locking down users in their platform. The users have no choice to opt out from them, contrary to Matrix which allow the user to choose the client and the server they want to use. Therefore, the users can talk to each other regardless of what client and sever they're using!
Choosing the Server
Since Matrix is not currently a P2P communication protocol (they're working on it), you will have to use it through a server which is known as homeserver. And the homeserver that people use the most is, of course, the official Matrix.org server. Therefore, we better checkout the server's privacy notice also.
According to their privacy notice, they make it pretty clear that they can't see your messages in encrypted rooms, of which use end-to-end encryption to encrypt your messages. And the keys to unlock your encrypted messages are stored only on your devices or by yourself which is as safe as it can be. Moreover, both email address and phone number are totally optional as shown in my profile screenshot below:
However, if you want to opt out from the official server, the most recent list of the unofficial Matrix servers can be found here.
Or if you want to run your self-hosting Matrix server, you can get start by this installing Synapse guide.
Choosing the Client
Most people use Element as their Matrix client. Since Element was founded by the team behind Matrix, it's kind of the official client for Matrix that people expected it to be the most matured and feature-rich.
Element is an open source Matrix client which you can grab the code on their GitHub repositories. Currently, they have US$5 and US$10 monthly subscription plans available for end-users which will give you some more connection speed and some more bridges to connect to your friends on other messenger apps from within Element. Moreover, they also have subscription plans for enterprise users and their Matrix hosting services as well.
Or if you want to support The Matrix.org Foundation directly, you can go to their Patreon page or buy some T-Shirts at their shop here.
However, if you don't want to use Element as your Matrix client, you can find a full list of Matrix clients here.
What is still preventing us from using Matrix as our main messenger app?
It's not only about the robust technology that will workout for the platform/network. Otherwise, for instance, Google+, with that kind of technology plus money and marketing power, wouldn't fail.
According to Statista's report in 2021, 2 billion users were accessing the WhatsApp messenger on a monthly basis. And according to Element's website, around 42 millions users are connecting to Matrix. That's around 2.1% when compared to WhatsApp. It seems like Matrix's position in the messenger apps market is very similar to Linux's position in the desktop PC market. So, why didn't people use it considered all the benefits as explained above?
No friend here...
Of course, the reason we use our communication at all is to communicate with other people, especially, friends and family members. If the people we care are not on this network, it's pointless.
Matrix's Bridges can help with this issue to some extent. However, it's not a viable option for average users. The accessible Bridges in free tier Element are IRC and Slack that most people have never heard of. Even though the users can pay the subscription plans to access more Bridges, but that would diminish the point of using Matrix. I see Bridges more like a relief, not a solution.
Nevertheless, to change how people do their things is not an easy task. They're most likely to continue using centralized messenger apps just because they're familiar with them, without caring much about privacy issues. I am very sure that most people would choose to have cute stickers in their collection before having their privacy back any day of the week. This is Matrix's homework to sort it out together with many Matrix client developers.
Unmatured Client (yet)...
Matrix itself introduced version 1.0 in 2019, let alone Element. If you expected Element to be extremely stable, you could be wrong. In my experience for using Element on Android 11 for a while, I can say that it's far from stable and complete.
I, as an advocate, successfully got some of my friends and family members to use Element. At first, they were very interested about it. However, they're now quitted as there's no option to start a group voice call. They went back to LINE and don't look back on Element again due to the lack of this very basic feature. Here's my bug report regarding this issue.
I also successfully got my team in a project that I'm working on to switch from Discord to Element. They're not happy about it as the screen sharing feature, that's supposed to work, doesn't work at all. Currently, the group video call in Element is handled by Jitsi. Basically, you're using Jitsi Meet inside Element but without screen sharing.
Regarding these issues, the team has already made it as the #1 roadmap to address among all the others in their roadmap.
Moreover, there's still a lot of UI/UX issues that need be fixed or refined. You can search and help reporting and debugging the issues at the official repositories here.
Matrix is a great technology in the communication space. I have no doubt about that. However, there's so many things that need to be done before it can compete with other players in the market. Or, to put it more precisely, that's the work for every Matrix client developers and servers to penetrate this market, together!
I hope this is a good read for you all.
Cover photo by Quino Al on Unsplash
Brown Sheep photo by Jo-Anne McArthur on Unsplash
An Unlocked Locker photo by Basil James on Unsplash
A Person Behind a Fog Glass photo by Stefano Pollio on Unsplash
A Man Smoking photo by Akshay Bora on Unsplash
Top comments (2)
Hey i hope you can help me . I try build app base about matrix solution . If you know if exist Api for login and send message to server . Just for testing
Thanks for contacting me 👋
I have no idea of the API. I only wrote this after implemented Matrix, Element, as a communication tool for my team.