What isn't a Viable Alternative: Matrix

#matrix #discordAlternatives

This post is part of a series of posts about viable alternatives to discord. You can check the #discordAlternatives tag above for all blogposts in this series.

Matrix is, nowadays, one of the most recommended “Discord Alternatives”, especially if your audience resides on the Fediverse where one half will absolutely hate it, and the other much louder half will be those that believe in Matrix for one reason or another.

And I get it! It is federated, replicates and decentralizes data¹ has tons of servers and a corporate entity behind it that provides it with funding...is what some would say

The reality is, matrix lacks funding², lacks moderation tools, lacks spec-compliant clients, has hundreds of open MSCs with important changes that can impact the ecosystem as a whole, make it more secure, more robust, more reliable, safer for everyone

In real-life scenarios, projects have had to give up Matrix entirely—despite self-hosting and despite having a moderation bot—because the abuse that is happening on the platform is simply too large. Projects like Librewolf are regularly getting spammed with literally illegal material—the same reason other projects simply left—and have to fight against this for themselves.

They cannot restrict who can send media, they cannot setup any raid protection, federation is simply too slow for anyone to react in time, including bots, which aren't even fast enough either. There is also no way to filter events before things happen because a malicious server could easily just patch out this filter.

In other words, moderation is probably one of Matrix's largest weakpoints. It makes it absolutely unsuitable for any even moderately sized community, especially those that are potentially already vulnerable (i.e queer communities). Yet somehow it still gets worse, on a more technical level.


Due to how Matrix is designed, servers that participate in a room (i.e users from different servers all talking in the same room) have to do state resolution to figure out what the current state is. This is because there is no “owner” to a room in the sense of “a server where all the data resides”, all servers have that role and as such they require a mechanism that allows them to synchronize this data. The algorithm however is brittle and far from perfect. When a fatal error happens, it often happens that two participating rooms get different state, and as such...

State Resets

A state reset is when one or more servers decides to reset their state back to a “known-good” point. This leads to any state changes done since then, like membership, permissions and more being entirely undone up to the point that effectively, they never existed.

This is of course a major issue, as it means that any moderation done up to a given point is effectively undone. It makes people unable to communicate properly with those who aren't also on their server, and that is just the start.

Especially when many changes to state happen frequently across many servers, state resets become more common. Like, you know, when trying to moderate.


To this comes a whole host of features that Matrix is simply lacking.

On top of all the above missing features, some of the already existing features are not even consistently implemented between clients.

Some STILL don't show media captions, Element X (the in-beta mobile rewrite) cannot display custom emoji at all, and NO ONE can decide how to do text formatting properly (seriously, maybe <br> shouldn't be usable y'know?), some implement MatrixRTC and others stick to legacy VoIP, some have widgets and some don't... And that is just the tip of the iceberg. Seriously I've barely scratched the surface of weird inconsistencies between clients–I dare you to find one client that implements the spec 100% accurately, and mind you, it's NOT Element.


My final point is that, essentially, Matrix is—as it stands—simply not suited for anything serious especially when it comes to hosting communities. Notice how I didn't even touch on the unable to decrypt meme that often goes around...that would've opened a whole new can of worms

If matrix wants to become viable, it must find the funding and invest into some core areas of the protocol that are quite frankly, broken. This includes not just moderation and T&S³, but also finding solutions on reliable key exchange even when the wider network is unreliable, finding solutions to “split-brained” rooms and state resets, getting (security) audits from the get-go and not just after an unaudited library was used and recommended for years. The list goes on, there is a lot of issues to unpack and tackle.

Oh also, I KNOW THAT THERE ARE MSCs TO FIX SOME OF THESE THINGS. Shut up. I've heard too much about it already, infact I tried writing some in the past and most of them ended up dead before I even submitted them


1: Well, to some extent. One notable exception is how Media is not decentralized. 2: Especially now that the Matrix Foundation wants to fund everything themselves and not have their bills paid by Element anymore. 3: Trust and Safety


↓ To support me, check out my Ko-Fi! ↓

https://ko-fi.com/cyrneko Any little bit helps <3