Reflections on Matrix criticism over the last week
Source: https://youtu.be/OyuqM7RbX5E
Hi everyone and welcome to Matrix Live season 11 episode 7 where you are stuck with me Matthew project lead for Matrix.
I guess I'm going to be wearing both Matrix and Element CEO hats in this week's recording. I will try to identify which hat I'm wearing at any given point.
What I wanted to talk about this week is that there is clearly a lot of unhappiness being expressed out there about Matrix and Element this week.
I think we've basically seen a blog post a day, sometimes twice, ending up on the front page of Hacker News or Lobsters or wherever, with folks expressing quite reasonable disappointment and irritation at where Matrix and Element are at the moment.
And so I basically wanted to try to respond. I was thinking of putting out a blog post to articulate this more coherently, but I haven’t had a chance to put it together, so let's risk me improvising one off the top of my head.
Now, the root causes of the feedback that we're seeing are multiple, but one of the main ones that keeps coming up is this feeling that most people experience Matrix via Element.
Element currently has two apps: the classic Element apps, which haven't been updated for two years now, and then Element X, which is the rewrite we've done over the last two or three years in order to have a much better platform to build on.
However, the Element X apps have not got the full feature set of the classic ones.
As several folks have pointed out, this means that you either have a choice of a stale app which has performance issues and UX issues and hasn't really been updated in a few years other than for security issues, or an incomplete app.
I guess this is entirely my fault as CEO of Element, greenlighting and pushing for the whole rewrite in Element X.
This was not a failure mode that I anticipated, perhaps stupidly. The rationale was that the improvements in usability and performance of Element X would be such that folks would forgive some of the more exotic features like threads or spaces being missing at first.
That’s why back in September of last year we made a big song and dance about launching it as a Signal, iMessage, or WhatsApp style replacement.
None of those have spaces or threads, and for the messaging use case, I personally think Element X is a really good app for supporting that.
However, in practice, we’ve had two problems.
First, casual users just still end up installing the old app, don’t even know that Element X exists, and use that to gauge their opinion of Matrix.
Second, more interestingly, existing power users are just not moving over to Element X because it turns out people like spaces and threads way more than I ever realized.
Perhaps this is weird self-selection bias, where everyone assumes that people use apps similarly to how they and their colleagues, friends, and families use them.
In practice, I haven’t used the classic Element app in over two years now. I've been dogfooding Element X and I personally haven’t missed spaces and haven’t really missed threads that much, given that you do have compatibility. You can see the messages, you can respond in them, even if they don’t end up with dedicated UI like you get in the classic apps.
Either way, this is, to use the technical term, a cockup. Clearly, there are a lot of unhappy, angry people who have ended up feeling abandoned, basically let down by Element, due to being stuck between two stools.
And it's a weird one, because this is in some ways a good problem to have. If people were saying, "Element is awful, there is no solution, here are all the terrible things wrong with it, and they’re never going to fix it," then we’d really be in trouble.
It reminds me of classic Mac OS back in the day, before Mac OS 10, where it had been stuck with system 7 and then 8 and 9 for years. It could barely multitask, if an app crashed it would take out the whole kernel, performance was awful, stagnating, no new features. As a Mac user back in the 90s, everyone gave up. People moved to Windows 95, some to Linux, and everyone thought Apple was toast.
That’s not where we are today with Matrix or Element. The hard stuff, the equivalent of Apple building Mac OS 10, has happened. It exists, you can use it.
So it’s weird that the negativity is due to a failure of choreography, migration, and positioning to smoothly move people over, rather than the fact that the new apps don’t exist. The building blocks are here, even if not yet fully assembled.
Another thing that has come up is the perception that we’re arrogant and don’t listen. Hopefully this monologue contradicts that. We are listening, we agree we screwed up, and we are trying to fix it.
Sometimes I wonder if complaints about arrogance come from tribalism. Someone says "Matrix is crap because XYZ" and then a random community member replies "No, you’re wrong because ABC," and then the person concludes that Matrix people are arrogant. Or maybe because I spend too much time on Hacker News trying to justify where we are and that comes across as defensive.
But the point is we do listen. We don’t think Matrix or Element are perfect. Quite the opposite. It’s frustrating that we’ve done the work, put in the effort, and yet people are still unhappy because of the failure to execute on the transition.
Another thing that comes up is performance. Synapse is not the fastest chat server. It’s almost certainly the slowest. Many blame Python, but that’s not the main issue. There are subtle bugs, like an HTTP pipeline stalling issue that delays requests by seconds. There are also inefficiencies like fetching history from dead servers unnecessarily. Some of this is being addressed with new MSC proposals.
Sliding sync has massively improved performance, but many don’t see it because they’re not using Element X, and Element Web still lacks it. Fractal, for instance, doesn’t use it yet.
It boils down to prioritization. Governments deploying Matrix often don’t hit these performance problems, so features like compliance or scalability take precedence. That’s why some performance bugs remain after 11 years. Contributions from the community could help here.
There are also differences between iOS and Android. Push notifications on Android are unreliable for some, though fine for others. We’re trying to rebalance support so Android issues get more focus.
Another failure mode is stagnation. We shipped Element X in September knowingly missing threads, spaces, and VoIP, intending to add them later. But they’re still missing. Designs exist, but progress has been slow. In hindsight, we should have prioritized feature parity first. We’re now changing tack to ship minimal viable versions and iterate.
Under the hood, big improvements have landed, like event caching in the Rust SDK, which enables threads, media swiping, offline support, and room previews. But from a user perspective, these are invisible compared to missing threads and spaces.
People also complain about Matrix being bloated due to syncing DAGs. I disagree. Other systems sync even larger DAGs quickly. If you want message-passing, use XMPP; if you want conversation syncing, use Matrix.
On the web side, Element Web is stuck. We’re rewriting components as MVVM modules to allow switching SDKs. The left panel and membership list are done; the timeline is being rewritten to fix scroll jumps. This will improve things a lot.
Encryption issues should be mostly fixed since last year. If you still see "unable to decrypt," it’s likely due to buggy servers, old clients, or edge cases. Please report them; we treat them as critical.
Spam has been a huge problem this year. We are investing more into anti-abuse work, but it’s been hard without funding. We regret not investing more into it earlier, but improvements are underway.
Crypto UX is still being refined. Verification is better now but not perfect. Ideally, we’ll move towards passkeys or hardware keys when OS and browsers catch up.
There’s also disappointment that Element X isn’t the default yet. Many haven’t started using it, so it feels like nothing has changed. I get it. I’m sorry. The criticism makes us more determined to succeed and never repeat a rewrite that leaves us stuck between old and new.
Other updates: Premium accounts on matrix.org are almost ready. We increased the file limit for free accounts to 10 MB after feedback. Terms of use were updated due to the UK Online Safety Act. Compliance is mandatory for UK users, but it only applies to servers we run, not Matrix as a whole. We’ll try to avoid worst-case scenarios like age verification, possibly by banning NSFW content on matrix.org instead.
So, sorry for the long monologue. Thank you to those giving constructive feedback, and to those defending Matrix. We will fix the issues people are complaining about and come back stronger.
Have fun everybody. Have a great weekend. Speak to you soon. Bye.