Matrix: The Why and How

“Matrix?”

Matrix is a free software protocol that enables decentralized, encrypted federated real-time communication.

I shouldn’t have to explain to you the benefits of free software (“open source”) in general, and I shouldn’t have to explain to you why proprietary software is bad and should be avoided. If you haven’t heard of those terms, research them and come back. Good? Alright. Anyway…

Despite the plethora of free protocols and free software that enable them, normies will still choose the one with the biggest guerilla marketing campaign. I really shouldn’t have to explain why you should use Discord, but I’ll let these gentlemen explain for you. Really, there’s so much ethical, and frankly, less headache-inducing ways to communicate with people through networks, and Matrix is but one of many.

Do know that Matrix isn’t perfect, especially in contrast to other protocols of its kind. However, it is miles above any standard, run of the mill proprietary solution.

Element is one of many clients that uses Matrix, and to be frank, it’s pretty much a nigh perfect drop-in replacement for any of your Discord needs. No, it may not have Giphy built in (so you’ll have to send people your own memes saved on your hard drive instead, oh, the horror!), nor Discord Nitro, or whatever other snake oil that company’s peddling that you really don’t need, but it suits mine and many others’ communication needs well.

I’ve had to explain the setup for a number of people, so I figure I should just get it all in one place so I don’t need to repeat myself. Keep in mind that this is strictly for users; people interested in running their own Matrix server (using Synapse) will have to look elsewhere - I’d recommend the guide at landchad.net.

Web/Desktop

Element uses Electron, so the experience on either a browser or via the desktop client are nigh identical.

If you are using a browser, head over to the web client. If you’re sensible and want to have it on your desktop, install the desktop client.

Creating an account

Step #1

You’ll see this screen at first. You’re interested in creating an account, so click the “Create account” button.

Step #2

Following this, you’ll be prompted with this screen, letting you create an account.

It’s important to note that Matrix is a decentralized protocol. When making an account, you need to specify what homeserver you’d like your account to be hosted on - there’s no big centralized place with all the accounts (in the case of Discord, for example).

matrix.org exists to sort of fulfill this purpose, but my personal recommendation is to find a friend who can host a server or make one yourself to meet your communication needs. You can trust yourself or your friend more so than you can this large, unknown, centralized entity. matrix.org is fine enough, but there may be security concerns with using matrix.org if you care enough about that, so it’s best you find a homeserver you can trust.

We’ll use an example domain for this - example.com. If me or somebody else is forwarding this article to you, they’ll tell you the domain name.

Step #3

On this screen, you’ll see the “Edit” button. This is where you can change the homeserver. Click it.

Step #4

The former screen will darken and this new window will pop up. In the “other homeserver” box, write example.com (or the domain you’re using).

Step #5

(Note: I’m using my own homeserver as an example, hence the black box. If you’re “sleuthy”, you can probably find what I’m using…)

You’ll be prompted with this screen, akin to any other login screen. Punch in your username and password you’d prefer to use.

Note that for many homeservers, open user registration may be closed. You’ll have to speak to the server administrator about registering an account. If you’re running a rather small server, open user registration may not really lead to issues, but ultimately it hinges on how much you believe in security through obscurity. Moving on.

Step #6

As mentioned before, input a username and password and hit the “Register” button. For some reason, this typically takes a little while, but you’re patient, right?

Step #7

You may be prompted with this screen. It doesn’t really matter what you choose; I’d just hit “Skip”.

Step #8

Congratulations! You’re in.

Direct Messaging

Great, you’re in, now you wanna find your friends. How are you gonna do that?

Step #9

Hit the “Search” button next to your icon (on the top left).

Step #10

This window will pop up. Hit the “People” option.

Step #11

You’ll be prompted with a name to search.

Akin to Discord, users have tags - but unlike it being “[USERNAME]#0000”, the tags are formatted as "@[USERNAME]:[HOMESERVER]". If you’re trying to reach a friend, they’ll tell you your tag, or you can tell them yours.

Step #12

If you’re looking for you tag, just hit this icon here on the top left. Right under your name, there. You see it? You better!

Once you’ve found your friend, hit their name and a messaging window will pop up. Have fun!

Security Keys & Sessions

For the sake of encryption, during your time on Element you may be prompted about a security key. Make sure to save it somewhere, preferably in a password manager. You DO have a password manager, right? Right???

Element also handles encryption via sessions - based on whether you’re using your phone or your computer, or if you turned it on again, etc. You may be prompted about ensuring the validity of your sessions through some sort of check across devices (emojis, if I remember correctly). If you’re having trouble with that, just make sure to verify your sessions and go through that process.

It Isn’t Perfect…

Element is a piece of software maintained by the community rather than overworked software engineers who are tirelessly worked to the bone to appease shareholders. It may not be perfect. There may be crashes. Things might not work with the consistency you expect them. And hey, if it ISN’T perfect, well, it’s free software that takes contributions. If you don’t like it, you’re not powerless to fix it. And by doing so, you’ll make it better for everyone!

Takeaway

Use Element (or whatever freedom-respecting communication platform you prefer) and stop using Discord!