Since the beginning of the Internet people wanted to communicate with each other. Even as young kid in Poland this was no exceptions (back when kids could use the Internet without being age-gated by services). I believe my adventure with online messaging began with popular in Poland back then Gadu-Gadu of which the default text message sounds I remember even today. Later Skype took the lead, had a brief time where I used Hamachi with friends as the messaging platform of choice, then IRC, Discord… And now for a few years the platform of choice is Matrix. I say “platform” however it’s a bit more complicated than that.
It’s a bit awkward when I say I’m using Matrix. Because Matrix is a protocol and an ecosystem. And while I certainly do use the protocol to chat, that’s not what most people think of when I say I’m using Matrix. Think about it, when people say they are using Skype they already know what kind of thing to download. It’s an application, they can DuckDuckGo and download. Matrix on the other hand doesn’t have “Matrix” application. It has “clients” which utilize Matrix to exchange information. I could say I use “Element” or “SchildiChat” as those are two Matrix clients I use, however then I feel like I’m not telling the full story of Matrix and potentially adding my own bias regarding clients making the listener think that there is just one boring application like for the rest of instant messengers. I think that would be the correct answer to most non-techy people, however I still feel like I’m adding my own biases when I say that, which is why I’m always answering that I’m using Matrix BUT what you most likely want to hear is that I use Element.
Matrix is built in majority by a team of people from Element1. But with increasing popularity of Matrix - it attracts more tech enthusiasts wanting to contribute from all over the world.
Also, please do note that for the majority of this post I’ll be focusing on Matrix as an instant messaging solution, however Matrix can and is being used in multitude of ways that go beyond chat applications. I’ll cover that in Extra section.
Matrix is like instruction manual on how to build a chair. It’s a language for machines. It’s like a blueprint, a reference image to be recreated by the artists. It tells developers how to create a program that can communicate with all of different programs made in the same way. The core of what Matrix is, is actually a text document called “specification” which anyone can read. Thanks to it, the Matrix ecosystem can thrive.
Matrix is also an ecosystem. It’s a garden of different species of animals who can speak to and understand each other. Or well, speaking without weird comparisons of mine, it’s a category of programs made to be compatible with the Matrix protocol/specification. It includes its own subcategories like clients, servers, bot frameworks and bridges all of them having different purposes.
There are a lot of reasons to use Matrix. Regular users might be satisfied by ability to send stickers, use custom emojis, send files, have some permission system, voice/video call, have an avatar etc2. The things one could expect from a typical messaging apps. However there is also a wide range of features that might not be so obvious to regular users.
- It’s the user who decides on what instance they register their account that is central place where their information is stored, you are not forced to give it away to some greedy corporation.
- This decentralization also means that failure of one point (like one instance) doesn’t mean a failure of them all! It will affect all users within that instance but other than that everyone else will be able to communicate freely.
- Matrix won’t suddenly die because company behind it abandons it. Due to its openness it will thrive on, just like IRC.
- It doesn’t cost anything, there are no ads, most of the people running Matrix instances are individuals with similar ethics who will not sell your data to 3rd parties.
- It allows for secure communication with other users3.
- The goal of Matrix is to interconnect. If your friends use Discord, Signal, Facebook Messenger, IRC or other communicators, there is a high probability it can be integrated with Matrix allowing you for communication without actually leaving your Matrix client.
- It doesn’t force on you to use one client. You can choose the client you want from ones developed by companies to volunteers, and all of them will work with Matrix server.
- Usage of “widgets” to embed just about anything from YouTube videos, Spotify playlists to collaborative document editing in a room, visible to everyone.
- Matrix doesn’t force users to use their private information such as telephone numbers or even email addresses to register. Of course it varies from server to server, but generally this information is not required in order to register or use the service.
All of those functionalities make Matrix rather unique on the landscape of messaging platforms. A lot of them are only possible because of three very important ideas that make Matrix:
- openness (protocol is open, anyone can see how it works, anyone can propose changes to it which are evaluated by Matrix community and possibly merged into specification)
- federation/decentralization (there isn’t any central website or server you make your chat account on, you can make your account on a Matrix instance you want and be a part of it, I also added decentralization due to continuous work on Peer to Peer Matrix support, while not supported officially yet, it should be in the near-ish future!)
- moderate simplicity in protocol (while communication with Matrix server doesn’t seem as easy as in case of IRC, it still works based on HTTP and communication with the server seems fairly straightforward)
Nothing is perfect, and Matrix is not an exception from this rule. Matrix as well as its ecosystem does have a few drawbacks which should be considered.
- Metadata - due to way Matrix works, data on communication between users is pretty much duplicated by every participating server. While contents of chat messages themselves may be secure with End-to-End cryptography, the who talked with who at what time information isn’t. This is one of the reasons I’m unable to make a strong case for privacy being Matrix’s strong side. If you require anonymity and strong privacy (because of powerful adversaries like governments) I’d recommend looking into Briar and if in groups of high risk (journalist) contacting EFF on ways to protect yourself.
- Difficulty in usage - I mean, look, it does add its own layer of difficulty. User has to find a homeserver they need to register on, the UI of most clients is still leaving a lot to be desired and occasionally users still encourage some encryption related issues/bugs.
Matrix.org Foundation is a non-profit organization with legal directors called “Guardians” who are in charge of its governance according to the set out rules and mission.
It has been invested in multiple times45 by many different entities. I believe it’s a sign that Matrix does have a good chance at establishing itself as a good alternative to other technologies that do similar tasks (mostly messaging). Additionally, Matrix is being adopted by many (mostly open-source) projects and organizations such as Mozilla, KDE and even European universities and entire governments!
The fact that it has both financial backing as well as there are organizations and governments adopting Matrix for their needs, means that Matrix is succeeding in its mission and very likely its future is very bright.
Matrix is a great example of rapidly growing ecosystem with ever expanding amount of features. Its openness and focus on federation is a great counter to continuous centralization of web like we see with web giants. It’s a comeback to the roots of the web. While I’m worried that it might not get federated enough, I’m a proud owner of my own little homeserver (which federates with users from other homeservers) for friends with which I do my part in decentralization of the Internet. If we are friends feel free to ask me for registration token!
Overall, while I’d really want all people to switch to Matrix, and the purpose of this blog post was to at least convince you to check it out, I can’t say that at the time being I can recommend it to everyone. If your friend group is tech-savvy by all means Matrix is a really good choice if you want a secure, extensible and stable chat. But communicating with older family members still might get frustrating from time to time on Matrix, for example because of encryption verification methods or occasional bugs. Other secure chat applications like Signal sacrifice things like verifying device sessions for simplicity. Most of Matrix clients take more safe but annoying approach and thus lose on this field.
If you would like to try Matrix you can check out this guide on how to get started. You can create your new Matrix account over on matrix.org homeserver to test it out. Later, I advise you to find other - smaller homeserver and use it instead as federalization makes the Internet better (in a way).
Matrix is awesome, I hope that by now I at the very least interested you in looking into it. But Matrix isn’t just chat, while it’s currently its biggest focus, Matrix has been successfully utilized as for example a comment system that can be embedded on the website, live blogging solution to turn your messages into live reporting, or even storage for whiteboards! There are constantly new interesting projects being made with Matrix and there are plenty of ideas to be explored in this regard.
As of 10th of May 2023 due to awful handling of their social presence, along with proud cooperation with law enforcement I can no longer recommend Element client or say that I trust Element team. Working with the same groups that undermine the very values of secure and private conversations is in my opinion a position unfit for company making a messaging application. Law enforcement groups continue to lobby for worsening security and privacy of us all, put pressure on privacy activists while also exhibiting biases against minorities. I believe cooperation with such unethical entities is in itself unethical (or at the very least antithetical to supposed efforts for strengthening encryption) by proxy. I believe cooperation with such unethical entities is in itself unethical by proxy. ↩︎
The feature set depends on the Matrix client you use, most widely used clients however have a wide range of functions already implemented. ↩︎
By utilizing End-to-End encryption, however while most instances have it enabled by default, there can be some which don’t, in which case the users can enable it manually. ↩︎