Seeing such issues with Matrix and other open, common-good projects, I get the feeling like they just aren’t architected for good everyday-user UX.
Matrix is making real efforts to change this with Matrix 2.0, but still seems to suffer from design debt in many places.
I think this is partially due to the people they attract who largely work on the projects for free: Tinkerers who care about some form of technical elegance for the fun of it. I’ve had a few conversations around FOSS, including Matrix, at this point, and a not-too-uncommon response to my relayed criticisms was “then the user is wrong”.
I can’t tell them what to do. I could tell them what to do if they want adoption by normal people, but many don’t seem to be interested in that and you really can’t argue with that.
If adoption by normal people is a project goal, you have to seriously engineer for that. As much (partially fair) criticism as Gnome gets, they managed to build a desktop package that can seriously be used by normal people in the real world.
Are there any real options in this space for something that is
- E2EE
- Large group capable (100+ users)
- FOSS + self hostable
- Not riddled with security issues
- Relatively easy to use for iOS and Android users (safe for normies)
I help run a Matrix server for people who are at risk from the current administration and I can attest to all of the issues mentioned plus a few more.
I'd rather not move to something as hostile as Discord and while we've tried Stoat it's infinitely more buggy and the lack of iOS apps is causing problems.
Rocket chat is interesting but E2EE is early in development, lots of security issues at last check.
Simplex isn't going to be better for large group stuff, it has the same fundamental sync issues Matrix does and the devs are more interested in crypto than fixing that.
Nope, just Matrix. Second best option is XMPP with various cobbled together XEPs but that has its own set of problems.
For all the (sometimes rightful) grief Matrix gets, it's essentially the only solution targeting hard problems like multi-device encrypted group chats[0] or truly federated multi-user chats. It can also be a very quickly moving ecosystem, which is difficult to handle when you're an open federated spec. Hence why several of the complaints in this post are caused by old and no longer supported clients and servers.
[0] Infamously, WhatsApp and LINE both support encrypted chats but all the encryption keys are stored on your phone, so you can only have one phone working at a time and desktop access is actually routed through it.
You‘re describing Wire. One could quibble about the FOSS part but it is open source (gplv3 or agpl). It’s used by a bunch of European governments and agencies, as well as American agencies, has regular security reviews and thanks to MLS, supports groups with more than 2k clients. Self hosting is a bit of a pain, but people are doing it.
That’s Matrix. Matrix has spent too much time chasing Discord, with spaces, and group video chat, and email with federation. And too much time chasing Slack with threads. But everything you mentioned is core Matrix chat and works great on every client.
Yeah, it's a frustrating situation because we have hundreds of people and the constant state-sync issues and assorted account problems are making it hard for non-technical people to participate.
Matrix still doesn't have a client with built in push to talk as far as I'm aware. The relevant issue on the Element github has been sat there for 8 years now
It does not seem like a serious project, at least not one being developed by folks who have user experience in mind
Same for multi-account support in Element Desktop. However: The new breed of clients (Element X) has this, along with many other improvements. This is probably what the happy user featured in the article was using. They recently (in the last few years) started to focus on UX, with what I would call some success.
I'm sure you've tried or at least considered it, but you didn't explicitly mention it so: XMPP? The MUC extension has no problem with large groups (after a certain point you have to disable presence advertisement and reflections and whatnot, but that's way north of 100)
XMPP has several ways of doing e2ee, the most popular being OMEMO.
The challenge will be finding clients that supports OMEMO for MUCs (multi user chats) on each platform. They exist on desktop, at the very least.
It's an effect of walled gardens that the communication method is conflated with the app. But people understand well that Outlook and Thunderbird is both just email. I think this analogy helps when explaining XMPP.
The unfortunate surprise with self-hosting Matrix is that Element X requires sliding sync and Element X cannot be installed on macOS if you have System Integrity turned off (I assume they store the keys in the Secure Enclave or something).
Conduit gained support for SS fairly recently so that’s good.
For a decent client, I’d recommend Cinny. There’s currently a fork of Cinny in development but it doesn’t work with my self-hosted server right now.
I host a matrix server and have three friends in it. One or all of them being unable to decrypt messages happens every few months and there’s no easy way to learn WHY do I reboot the server.
Annoying, but the other chat apps have trade-offs I don’t care for.
I've hosted my own synapse since 2019, maybe even earlier. Its the same virtualized instance, all I've ever done is update it. Never had to reboot it other than due to updates.
Remark half-way in the rant they are using dendrite, an experimental matrix server implementation that has been abandonned. Thus ranting about it is cheeky at best.
I have been using synapse for years with little issue.
> Dendrite is kind of deprecated as a homeserver these days, at least it doesn't seem to be the main focus of development and most recent commits are mere dependency bumps. Years ago, when the server was set up, choosing Dendrite seemed like a good decision, because it was easier to deploy and maintain than Synapse and there was a promise for a bright future for the first 2nd generation homeserver implementation. Unfortunately, migrating between Matrix homeserver implementations remains a problem with no satisfying solution, so we're kind of stuck on slowly rotting foundations.
Dendrite may or may not have been a good choice for a Matrix homeserver at the time the decision to start it was made, years ago. But the real problem, as the blog post points out, is that there is no good way to change that decision. Migrating to a new homeserver implementation is equivalent to destroying the old server and creating a new one from scratch - which also has the implication that any user whose account was on the old server loses that account and has to create a new one, because Matrix user accounts are tied to some homeserver (a bad design decision, I think). Tying system identity to someone else's server - and that server's domain name - is the cardinal sin of federated identity systems, the ActivityPub ecosystem has exactly the same problem.
> Years ago, when the server was set up, choosing Dendrite seemed like a good decision
> Unfortunately, migrating between Matrix homeserver implementations remains a problem with no satisfying solution, so we're kind of stuck on slowly rotting foundations.
I feel this. And it doesn't even cover the very first conversation I have with my users.
"You want to install Element"
"But I want Matrix."
"They call it Element now."
"I want to speak on Element?"
"No you want to speak on Matrix using Element."
"Uh."
"Don't worry about it. Look, just install Element."
"Well, I see Element and Element X."
"Oh right. Well, do you want to video chat?"
"What?"
"Element X doesn't video chat well. If you want video chat and a more featureful but slower chat experience, install Element. If you don't care about reliable video chat and don't mind rooms jumping around and not organizing them, but you want to subscribe to a zillion of them, choose Element X"
"What?"
"Oookay, let me explain. See, once there were--"
"Can't I just install the Matrix app?"
"It's Element or Element X. Do you want to video chat?"
"Um probably?"
"Well then Element, not X, that's the one you want to start with."
"Start with Element without the X?"
I usually recommend Element X on Android, FluffyChat if they complain too much about Element X after using it a bit, and nheko on desktop.
It is really annoying that Element X is missing so many things Element had (you can't even do /me messages, markdown headlines aren't shown properly either), but getting someone to move apps is pretty tough, so might as well get them on the new one that will hopefully get better with time.
Also I never tell people about voice or video in Matrix unless they ask, and if they do I tell them I don't use it, it's probably not great, and to just use Mumble for voice and Jitsi for video.
The pain in admin'ing a server is real - even for my tiny one! I haven't bumped into these specifically with tuwunel, mostly SSO issues that have been resolved.
But man being able to have all my chats bridged to one thing where I can comfortably sit in a client I control and can freely modify? The feature set and integrations available are really tough to beat.
Matrix is making real efforts to change this with Matrix 2.0, but still seems to suffer from design debt in many places.
I think this is partially due to the people they attract who largely work on the projects for free: Tinkerers who care about some form of technical elegance for the fun of it. I’ve had a few conversations around FOSS, including Matrix, at this point, and a not-too-uncommon response to my relayed criticisms was “then the user is wrong”.
I can’t tell them what to do. I could tell them what to do if they want adoption by normal people, but many don’t seem to be interested in that and you really can’t argue with that.
If adoption by normal people is a project goal, you have to seriously engineer for that. As much (partially fair) criticism as Gnome gets, they managed to build a desktop package that can seriously be used by normal people in the real world.
- E2EE
- Large group capable (100+ users)
- FOSS + self hostable
- Not riddled with security issues
- Relatively easy to use for iOS and Android users (safe for normies)
I help run a Matrix server for people who are at risk from the current administration and I can attest to all of the issues mentioned plus a few more.
I'd rather not move to something as hostile as Discord and while we've tried Stoat it's infinitely more buggy and the lack of iOS apps is causing problems.
Rocket chat is interesting but E2EE is early in development, lots of security issues at last check.
Simplex isn't going to be better for large group stuff, it has the same fundamental sync issues Matrix does and the devs are more interested in crypto than fixing that.
For all the (sometimes rightful) grief Matrix gets, it's essentially the only solution targeting hard problems like multi-device encrypted group chats[0] or truly federated multi-user chats. It can also be a very quickly moving ecosystem, which is difficult to handle when you're an open federated spec. Hence why several of the complaints in this post are caused by old and no longer supported clients and servers.
[0] Infamously, WhatsApp and LINE both support encrypted chats but all the encryption keys are stored on your phone, so you can only have one phone working at a time and desktop access is actually routed through it.
I think this is not true anymore. I’ve had it working with while my phone was off.
Give it a try
It does not seem like a serious project, at least not one being developed by folks who have user experience in mind
XMPP has several ways of doing e2ee, the most popular being OMEMO.
The challenge will be finding clients that supports OMEMO for MUCs (multi user chats) on each platform. They exist on desktop, at the very least.
It's definitely tempting though, it seems to be by far the most flexible solution.
Conduit gained support for SS fairly recently so that’s good.
For a decent client, I’d recommend Cinny. There’s currently a fork of Cinny in development but it doesn’t work with my self-hosted server right now.
Annoying, but the other chat apps have trade-offs I don’t care for.
Nothing in any logs?
I have been using synapse for years with little issue.
Dendrite may or may not have been a good choice for a Matrix homeserver at the time the decision to start it was made, years ago. But the real problem, as the blog post points out, is that there is no good way to change that decision. Migrating to a new homeserver implementation is equivalent to destroying the old server and creating a new one from scratch - which also has the implication that any user whose account was on the old server loses that account and has to create a new one, because Matrix user accounts are tied to some homeserver (a bad design decision, I think). Tying system identity to someone else's server - and that server's domain name - is the cardinal sin of federated identity systems, the ActivityPub ecosystem has exactly the same problem.
> Years ago, when the server was set up, choosing Dendrite seemed like a good decision
> Unfortunately, migrating between Matrix homeserver implementations remains a problem with no satisfying solution, so we're kind of stuck on slowly rotting foundations.
It is really annoying that Element X is missing so many things Element had (you can't even do /me messages, markdown headlines aren't shown properly either), but getting someone to move apps is pretty tough, so might as well get them on the new one that will hopefully get better with time.
Also I never tell people about voice or video in Matrix unless they ask, and if they do I tell them I don't use it, it's probably not great, and to just use Mumble for voice and Jitsi for video.
But man being able to have all my chats bridged to one thing where I can comfortably sit in a client I control and can freely modify? The feature set and integrations available are really tough to beat.