A week in Matrix

80 pointsposted 12 hours ago
by Kesseki

60 Comments

solarkraft

7 hours ago

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.

neiljohnson

2 hours ago

Disclaimer: I work on the project.

Matrix started out with its early DNA in focusing on the problem of how to create a decentralised e2ee multi-client messenger.

Getting that right took a lot of time and effort, which initially came at the expense of UX.

Elsewhere in the comments, it is clear that there are not many (any?) similar projects out there that solve the same problem, especially to the level of maturity where it is trusted by governments and civil institutions around the world.

So the effort was worth it, and we have the proof points to show that Matrix solves a real problem. Now we need to continue to work hard to create a UX that matches (perhaps exceeds?) the quality of the proprietary, centralised and non e2ee messaging apps that set the UX standards users have come to expect.

This needs to happen both at the protocol level and in the client and server implementations. For me personally, this means Synapse and the Element clients, but we have many quality implementations in the wild.

Matrix 2.0, mentioned above, is part of this initiative, though there is a lot of additional work in progress to both improve existing features (like Spaces and Threads) and add expected features, such as user status.

The post calls out running on Dendrite, which, as a project not under active development, contributes to some of the problems. However, I would not want that to be an excuse, because there is legitimate feedback in the post overall.

If someone reading this is new to the project and wants to host their own server, I'd recommend checking out [ESS Community](https://github.com/element-hq/ess-helm) - though other distributions exist.

Thanks everyone for flying Matrix and sharing your experiences (good and bad), we're getting there.

solarkraft

2 hours ago

Thank you for your work on Matrix. I believe that the world needs an interoperable messaging standard just like we have E-Mail, which is why I am so interested in Matrix becoming something I can tell people to use with a good conscience.

I am happy that Matrix has found a place in government organizations. For many individual users, Matrix currently solves no problem because they simply can not use it. I hope this will continue to change, I am cheering for you.

teiferer

6 hours ago

What you are writing may be true but what the article is about shows the exact opposite of "some form of technical elegance". This thing seems to be bug-ridden for feature areas off the mainstream usage path.

What helps against this are a rigorous design, testing, perhaps some formal methods sprinkled in (because distributed systems are really hard). That's what a tinkerer community could do that does not have an investor with strict timelines and profit requirements breathing down their neck. But the community apparently does not. At the least they should mark features as experimental that clearly have such fundamental issues.

fedpost

9 hours ago

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.

stryan

8 hours ago

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.

solarkraft

8 hours ago

> 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.

raphaelrobert

2 hours ago

We (https://phnx.im/about) are building something new (https://air.ms). The website doesn’t yet mention self-hosting and federation, but we’d like to get there as well. Beyond that, our focus is on combining good UX with state-of-the-art security. It might not float everybody’s boat, but it should satisfy the list above.

We are in an early phase right now, where we test the product with a limited number of people, hence the invitation-only approach. We intend to drop that towards the end of the year if all goes well.

We helped co-author MLS, and we also contribute to the MIMI IETF working group. We’d like Air to be as standards-based as possible.

We are also curious to learn about specific problems that folks think have not been solved yet in the space.

tcfhgj

an hour ago

how will federation compare to Matrix?

joker99

7 hours ago

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.

Give it a try

pkulak

8 hours ago

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.

fedpost

8 hours ago

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.

20k

8 hours ago

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

tim-projects

3 hours ago

I've never used matrix for more than 10 minutes, but I'd like to counter this with WhatsApp. WhatsApp has a swipe up to talk. This feature when used in a group effectively sends audio from you walking in your pocket to potentially thousands of people.

Internet groups are littered with complaints about this feature. But there is no way to turn it off and meta appears to not give a sh*t.

So, I'm not sure you can really argue that Matrix is not serious when that is the competition.

solarkraft

7 hours ago

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.

tcfhgj

4 hours ago

They had more important user experience things to work on than push to talk (no offense)

regnerba

4 hours ago

Chatto is what I am starting to lean into. Still early in development, but self-hosted version is available and the dev has been responsive and nice to chat to.

gertop

9 hours ago

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.

fedpost

8 hours ago

This is a non-technical group so the main concern I have is the same with Element vs Element X vs Fluffy vs ......

It's definitely tempting though, it seems to be by far the most flexible solution.

zaik

8 hours ago

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.

gobip

5 hours ago

keet.io

Might be too P2P for your taste though.

opan

8 hours ago

Have you tried XMPP (with OMEMO)?

louiskottmann

7 hours ago

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.

JuniperMesos

7 hours ago

> 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.

jeroenhd

2 hours ago

There is no technical reason why migrating between homeserver software doesn't work, there just is no tooling for it. Someone could build a Dendrite-to-Matrix exporter+importer. The protocol itself doesn't really care about what server software you're using.

I don't know any good messenger that doesn't tie their accounts to something portable. Plus, I think the ability to reset your password/passkey/whatever if you forgot it is way more important than having users manage their own identity roots for any serious messenger. The alternative is very cool, technology wise, but not really something I would care to use and maintain.

For users migrating accounts, there was a tool (not sure why it died) on the Matrix website that would log in to both accounts, go through each room and where possible invite the new account, and leave with the old account. As long as you have invite/join permissions, that's all you need to do for most chat rooms. 1-on-1 chats need some extra commands to set the metadata right so clients recognise them for what they are, but even they can be ported over, mostly. It's not a perfect solution, but it's lots better than nuking your entire account and starting over from scratch.

xorcist

5 hours ago

That is also an unfortunate design on Matrix' part. I had no problem migrating data when changing from ejabberd to Prosody. Because they are open source, so it's not really a problem to export to ad-hoc text and import again.

But Matrix closely follows proprietary products in its design, and the database is treated like some internal affair that you are not to meddle in. You'd have to reverse engineer the data format from source code, which is not practical for hobbyists.

louiskottmann

3 hours ago

AFAIR there is a doc about migration from synapse, that they promised to automate once dendrite would be production ready, which it never became.

progval

7 hours ago

This is addressed two paragraphs later:

> 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.

louiskottmann

3 hours ago

Acknowledged yes, adressed no.

Using dendrite at the time was a bet on the future : "use it now and you won't have to migrate".

You can also migrate by replicating messages, or mirroring new messages via a bridge.

In my opinion they tried nothing and they're all out of options.

RaitoBezarius

an hour ago

I'm part of the sysadmin team who studied the migration paths for the Dendrite in question in this blog post and unfortunately as a volunteer it's hard to find the time to invent migration paths (even if we have the knowledge) and make it happen while there's also many other needs unaddressed elsewhere.

Given that you seem expert in the matter, would you like to help and own the migration? That'd be awesome!

thegabriele

6 hours ago

Hi, could you describe the environment you're using it? Thank you

louiskottmann

3 hours ago

Docker-compose setup (nothing fancy) on a dedicated server.

Usage is work, family and personal notes.

bronson

9 hours ago

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?"
It's so needlessly complex.

jeroenhd

2 hours ago

Element X does video calls fine. It's been ages since it was the messy beta you describe it as. In fact, it does calls better these days. There's no good reason to go with Element Classic anymore, I don't understand why they don't just drop the old thing.

All the other things are just as true if you replace "Matrix" and "Element" with "email" and "outlook"/"gmail".

If you don't think the person you're talking to understands the difference between apps and emails ("I can email outlook people from my gmail?" is a serious question these days), just don't mention it. They're not going to get into the weeds anyway.

When I tried to explain the different "servers" in Discord to some a-technical people I had the same problem and disabling invites + not bothering with explaining the server concept seems to work out a lot better. I've given up trying to explain computer things to people who don't want to understand how the things they rely on work.

bronson

17 minutes ago

Does Element X video chat work with Element? Last I tried (a few months ago) it was awful, just randomly and completely broken, and didn't even have usable error messages.

maelito

5 hours ago

Explaining to non-tech people that Matrix was email and Element was Gmail was easy to understand.

bronson

2 hours ago

Email is also very confusing.

What is the Matrix equivalent to Gmail? Something that works reliably without having to understand all the background and acronyms?

opan

8 hours ago

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.

Almondsetat

6 hours ago

That's a strange conversation to have. Just compare it with email and they immediately get it

pitchlatte

4 hours ago

tried this and it’s not always an immediate eyes-light-up. it’s a bit frustrating really, the chasm between what people know and what they need to know.

kelnos

9 hours ago

God, it reads like a slapstick comedy routine...

Klonoar

8 hours ago

Just wait, eventually you’ll see the same project reps come in and try to do damage control. It’s like the cherry on top of it all.

tcfhgj

4 hours ago

Element X does video chat just fine by now, doesn't it?

NetOpWibby

8 hours ago

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.

tcfhgj

4 hours ago

Element Desktop is the element desktop client (doesn't officially have sliding sync yet)

Lerc

6 hours ago

I used to use Matrix. Its user experience was sub par, but in the end it rendered itself unusable to me before I had decided to abandon it of my own volition.

As far as I can tell it isn't so much a protocol as a collection of apps talking different protocols while claiming to use the same protocol.

TabTwo

3 hours ago

The sad part of it, way back we had to deal with icq, msn, Yahoo and then had the chance to reunite every one with XMPP. But that dream failed. Now we have a gazillion of services with anoying things like FOSS projects using closed source services like WhatsApp as their community base.

lytedev

9 hours ago

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.

jeroenhd

2 hours ago

I find the bridge setup rather suboptimal, but with a complete lack of a good Pidgin alternative for the modern age, it's the best system around, whether you do it with Matrix or with XMPP.

NetOpWibby

7 hours ago

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.

broadsidepicnic

7 hours ago

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.

Nothing in any logs?

stsch

6 hours ago

I can relate. I run Synapse for only 2 users, and every update is like a lottery. "Unable to decrypt" most often. Logout 2-3 times, clear cache, then suddenly it works again.

IRC was so easy. :(

pitchlatte

3 hours ago

as someone who wasn’t online in the IRC heydays i really wonder why we can’t just build on it, instead of inventing new protocols

jeroenhd

2 hours ago

People still use IRC. You can't run your own server and talk to people on other servers without a load of work, you cannot do any kind of encryption, file transfers (images?) are a privacy nightmare if they work at all, web clients need a proxy. Authentication doesn't really exist. Messages disappear if you disconnect and reconnect unless you set up an additional server that will make it seem like you're always connected.

The protocol was written for a different age. If you're going with old-and-proven tech, XMPP is a much better jumping-off point than IRC. Everything that made it simple and easy to use back in the day, makes it hard to use in a modern setting.

tcfhgj

3 hours ago

Because people have different use cases and priorities about chat.

Matrix.org and liberachat used to be connected using a bridge, even then the Matrix side didn't implement the requirements of liberal chat fast enough such that the bridge was abondened.

pelasaco

5 hours ago

said that, i manage a matrix instance in my company for more than 500 users, and everything works just fine. I like their device authorization models, their stack is easy to maintain and update. Everything works flawless. I used to maintain rocket chat in the same order of magnitude and it was a mess. I deploy it in Kubernetes + Authentik and I am pretty happy with the results. Long live to Matrix/Element!