Matrix

Created at
10 August 2023
Last modified
30 January 2025
Status
🌱 seed

Matrix is a decentralised instant messaging platform built on the ActivityPub protocol, and thus part of the fediverse. It's currently my default messaging app if I'm able to choose, but because of network effect that's not a huge number of applications.

If you're reading this you're likely interested in Matrix in some sense. If so, welcome! Here's my notes

Thinking about Matrix

Matrix takes a federated approach to message, which means:

  • The people "in charge" of Matrix are mainly interested in setting up a good protocol, that is, way of clients talking to servers and servers talking to servers.
  • They will/can also do things like:
  • /Anyone/ (well, anyone with a server and some technical know-how) can run a server.

This means that no one has a monopoly on running the Matrix server. If the people who happen to run one server are dicks, people can shift to other servers. Think of it like email - no one owns email.

The cool and the not-so-cool

This means that Matrix is a lot more decentralised than other, centralised message apps. Facebook messenger means you have to log in to Facebook to use it (and good luck finding a client which isn't blessed by Meta). Ditto for most of the messenger apps of yore - MSN, ICQ, AIM, etc.

However, it means that things tend to be a little bit messier than with centralised messenging systems. The conceit of centralised messengers (from the servide provider's viewpoint) is:

  • Let us handle the hard stuff - servers, discovery, login and session management, security, etc.
  • In return, we happen to have all your data on our servers.

So it's a tradeoff.

Usernames, servers, and addresses

Matrix' federated nature means that everyone can be on different servers, but still talk to one another. Again, think emails.

A user's username in matrix is:

@username:server

Note the atsym and colon - I will always incorrectly try to talk to username@server and @username@server because that's just encoded in my brain.

Getting started

1. Pick your instance (which I'll also call your "server"). You can find an instance here. Your instance doesn't matter too much - although it helps to pick a server you think will stick around.

2. Set up your account. You'll get instructions from your server on how to do this. Most will require an email address - if it's optional, it's still worth putting your email address in here, since it helps for password recovery and the like.

3. Pick a client. There's a few out there, most feel like they need a bit of UI polish. Element is a good default. Many servers have a web client you can log into - I prefer having an app on my computer. Your mileage may vary.

4. Save your recovery key. You should be able to access your account's recovery key, which is a nice long series of letters and numbers. In Element you can access it by going into your settings and selecting Encryption.

Join Matrix

Matrix outreach website

Matrix.org

Main server