How I am ditching my messaging apps for Matrix

I use several messaging apps: WhatsApp, Telegram, Slack, Signal,… All of these apps have their advantages, but having to install them all on my phone and keeping track of them just turns out to be impractical…

Also, each one of them poses a risk in security (which I am not covering on this post as there are security specialists that already addressed this).

That was when I found Matrix, “An open network for secure, decentralized communication”.

What is it?

As the website and quote explain, Matrix is a protocol for secure communication. The protocol is open source, and presents several advantages comparing to other messaging system:

  • It is decentralized, which means it does not depend on a single server managed by a single entity. (This is very relevant for the next point)
  • It is open source, and you can host it yourself easily (explanation later), incorporating your server in the whole network of Matrix.
  • It supports end-to-end encryption, even in groups (rooms). This is (I think 🤔) the only platform that supports this with such ease of use.
  • Even though it is decentralized, you can receive and send messages from several devices (like you do in Telegram, for example), because they all contact the same server that saves the messages.
  • It’s main client, Riot, is well designed, both for personal and professional use. (Also, the cool thing about being open source is there are loads of clients available…)
  • Bridges! I will talk about this later, but the ability to bridge the Matrix system to other communication systems is one of the things that make it very usable right now…

It is also important to establish the difference between Matrix, (Synapse) and Riot. Matrix is the server protocol and Riot is (one of) the client(s).

Set up

You can sign up to Matrix for free and start using it right away by registering your account at the matrix.org server, which is the default on Riot.

You can also contract another server provider, to get a premium experience and more control over your data, although the implementation would still be responsibility of the provider.

But the cool thing, as mentioned earlier, is running your own server! This is a really interesting option, as it presents a lot of security advantages. As the protocol is decentralized, the users registered on the same server can contact each other and their messages never have to leave the server. On the other hand, if they want to contact someone registered on another server (matrix.org, for example), they can do it from their server. This can be used by companies, governments, and organizations that want to stay in control of their messaging data.

The Matrix protocol also has several implementations, but the official supported one by Matrix is called Synapse.

Ansible Playbook

After some research and trying, I opted by using an Ansible Playbook made by Slavi Pantaleev, which provides an easy way of deploying the Synapse service on your server.

It also provides an easy way of adding some bridges, which will come relevant on the next part…

So, to deploy the service, you need to clone the repository to your local machine and follow the instructions on the README.md and docs, including setting up a domain name and respective sub domains.

The playbook is also very useful for setting up other services necessary or optional for Matrix (like Riot and Jitsi).

You can also try some other implementation methods, like the one explained here

Bridges

So, Matrix is pretty good, pretty secure, and awesome! However, chances are none of your friends are using it, neither does your company and groups you are subscribed to.

This is where the bridges shine. The concept is similar to other multi-protocol IM apps, like Pidgin. However, Matrix is not a client application, it is a server that unites all the services in one, not depending on a single client.

Basically, you install a bot, or a service, that bridges the communication from other services to your own Matrix server.

Some of the bridges are available directly from matrix.org, by clicking on Integrations. Through this, you connect to the bots hosted on the Matrix official servers. There are other providers that allow you to use their bots, like t2bot.io.

However, as this is all FOSS, you can also host your own bridges and bots, which is very important, especially as some of them are only available if you self host (like WhatsApp).

Self hosting all these services can be done easily as most of the main ones are covered by the Ansible Playbook mentioned above.

Some of the bridges that can be easily hosted are:

  • Telegram
  • WhatsApp
  • Jitsi (this not a bridge, but a self-hosted Jitsi, then Matrix automatically redirects calls to your own server)

And also, some services that don’t need self-hosted bridges:

  • SMS
  • Slack (which is part of the integrations provided by matrix.org)

Problems

So, all this is amazing, and it seems that Matrix is the future in terms of easy, secure communication.

However, in it’s current state, Matrix still poses some issues: 1. The main client, Riot, stills lacks some features that make sense for a personal use instant messaging app (like sending audio messages). 2. The bridges don’t work 100% yet, and you’re going to get some unbridged media, specially on WhatsApp.

Still, this issues don’t make, in my opinion, the experience less than great and, as it is a well maintained and active Open Source project, we can count on great support from the developers themselves.

Conclusion

This might very well be the future of communication: it’s safe, free and works great!

And, as time passes, we can only count on better features and great support from the community!

comments powered by Disqus