Hacker News new | ask | show | jobs
by Jnr 491 days ago
I have had only bad experience with its federation and chat clients over many years, I don't think it can improve, if it could, they probably would have fixed it a long time ago.

Maybe not a popular opinion, but they should let the Matrix die altogether so something better can replace it.

6 comments

Like... XMPP ?

IETF standard, massivelly used (video-games https://xmpp.org/uses/gaming/, IM https://xmpp.org/uses/instant-messaging/, social...), modern features, managed by a fundation with a good ecosystem and plenty of alive projects: https://xmpp.org/software/ .

Yes its not perfect, yes there's still things to improve, but the clients are there, working, on many platforms. The server-S (yes several of them!) as well, they can scale, they can adapt to many use cases.

Matrix did a few things better than XMPP (the Spaces/Servers things, that XMPP is still figuring out), but for most of the rest... well.

Oh and there's also many bridges on XMPP, maintained by different projects, and they don't need 100K$ to stay alive :)

XMPP in its current state is a mess. The bare protocol is minimal, the things which actually make the thing usable are just a bunch of extensions, barely glued onto the thing, which means that there are clients that implement different features, and you never know if whatever you send will be supported by the receiver (including encryption).

There are a gazillion clients for Android, mostly forks of Conversations implementing slightly different extensions, but like the upstream they fail at being enjoyable to use. I have not found a decent desktop client as of my last attempt.

I seriously think that XMPP is one of the best examples of why the "write protocols, not apps" approach has failed. Without an actual, complete and cohesive reference implementation, that others follow with theirs, there will always be a fragmentation like this, which will always ruin any attempt at mainstream adoption.

Matrix isn't particularly better though; its main spec does "have" a bunch of things, sure, but they're still very bodged together (threads are replies but with a tag of "no, this is actually a thread"; and for backwards-compatibility clients are "supposed to" understand a non-marked-as-thread reply as being in the thread, but the spec doesn't facilitate any way to consistently reason about such replies (i.e. they're not included when paging through the threads messages); all formatting-ful messages contain both a HTML and plain-text version of the message; edit events contain both "* "-prepended versions of the body for clients who don't support edits, and a "proper" copy for those that do, so that's 4 copies of the body in an edit event).

And there's plenty of inconsistencies across matrix clients too: some don't support displaying spoilers and so get spoiled (incl. Element X android); most (incl. Element) don't have a way to send spoilers outside of whole-message spoilers or manually writing out the HTML. Thread support is flakey. Some clients insert a newline every 70-or-whatever chars, which is supposed to be ignored by proper HTML parsing, but some things don't. Off the top of my head.

Threads are an anti-feature to me. The only time I found them remotely useful is when I was doing an AI bot integration into the Matrix channel and it was just me and the bot.
I don't imagine using them much either even if they were feasible to use (I have the extra trouble of being primarily in a community that's bridged to discord, but the bridge doesn't bridge threads), but I've seen them used meaningfully in other discords for tangential/off-topic discussions.
XMPP had its run and is dead, replaced by Matrix. Every single contact I've had on XMPP has migrated away from it.

Anyone telling me "actually nvm, I'm switching from Matrix to XMPP again" won't get me to replace the chat app that I keep just for this one person plus 2-3 others with another experimental, broken, soon to be replaced chat app, they'll get a link to Signal and an invite to send me a letter if they don't want to use that.

Matrix seems reasonably usable for 1:1 channels at least, and I've also successfully used it for groups, including ones bridged to discord and IRC.

XMPP isn't dead, but think what you like. More and more people have been adopting it. "experimental, broken", that's not really how I describe software that's been in use since 2004 ( https://en.wikipedia.org/wiki/Gajim / https://en.wikipedia.org/wiki/Pidgin_(software) ), 2014 ( https://en.wikipedia.org/wiki/Conversations_(software) ) etc. If you want to describe something as experimental or broken just take a look at Element, which has never once been what I would describe as "polished".
As I said - every single of my chat-app-militant contacts has migrated from XMPP (which they pushed early and aggressively) to Matrix, which includes groups like hacker spaces etc. (at least the ones that didn't just give up and migrate to closed solutions).

I literally have no single person to talk to on XMPP. The software names you mention all trigger flashbacks of horrible experiences, with my last experience even worse than my recent experience with Element, and unless they have been rewritten from scratch, I wouldn't be willing to install them again. At least I can run Element in a browser tab where it can't pwn my system...

There seem to be three incompatible standards for e2ee on XMPP, the latest being https://xmpp.org/extensions/xep-0384.html which is marked "experimental". I've never seen OpenPGP used, OTR was a compatibility nightmare, and I think by the time OMEMO started to be a thing XMPP started to stop being a thing.

OMEMO is the only E2EE standard to use now (I mean, barring occasional outliers, but OMEMO is the norm). That's cool, I'm talking to people on XMPP every day with people who have zero intention of moving unless something better (by their definition) comes along. XMPP seems to be gaining popularity as one of the last possible options for a genuinely decentralized encrypted chat protocol that isn't beholden to a singular closed org/corp. I just personally onboarded like five people and they're all like "this is awesome" and.... wait, did you just say "at least I can run this in a browser tab where it can't pwn my system"? Please search "browser exploit rce" on your favorite search engine. Here's one from two weeks ago: https://windowsforum.com/threads/cve-2025-21279-remote-code-...

I used to have a couple 1:1 Matrix chats with friends where I was trying to bridge the whole "different OS" issue for E2EE chat. Neither of them use Matrix anymore, and we were all having issues with Signal (my account is still b0rked). It was just too much hassle. So I mean, the anecdotes go both ways here.

I'm a fan and active user of XMPP. However, it unfortunately is true that encryption is a can of worms. OMEMO should be the standard, yet there is fragmentation in terms of the specific OMEMO spec version that clients use. Not even the most prominent clients keep up with the latest spec, as can be seen here [1]. One of the issues is, that everything prior to 0.4.0 uses AES-128-GCM, instead of the standard that is used by other platforms (eg Signal), that is AES-256-CBC with HMAC-SHA-256. In plain English this means that most mainstream XMPP clients do not offer encryption at a level that can and should be expected these days.

[1]: https://xmpp.org/extensions/#xep-0384-implementations

Browser sandbox escape to userspace exploits are still much harder to make though, compared to... uh.. a userspace to userspace exploit, given that the latter takes literally (actually literally) zero effort, and as such you don't have one every couple weeks, but rather an ∞ of new exploits per second.

(that said, a web-based client has the aspect that an exploit could be inserted at any point with only a page restart necessary, whereas a native client would need updating; but hopefully you update your client, lest you start missing out on new protocol features!)

Hey man, GNU Social still exists toooooo
Matrix feels like it’s in a strange place. I briefly tried it only to find vast quantities of porn and spam. Even the “programming” channel. I mentioned this in a thread on HN and got blasted by some Matrix maintainer, as if it was preposterous that I found this to not be a good thing.

Apparently they are unable or unwilling to moderate and prevent spam, even on arguably probably the first channel a large part of their potential users would join first.

That evaporated any remaining interest I had in it.

It’s probably worth reading https://matrix.org/blog/2025/02/building-a-safer-matrix/ for more context on that. (PS sorry for blasting you, if it was me :)
I agree, I've tried every possible setup I could to get things running reliably for a client and ultimately just held up my hands and went, "exactly why are you not using a combination of Signal/Keybase/GPG" for your use case?

Even PGP was easier to adopt en-masse than this.

The irony is that I suspect we have fixed it - eg Element X and Matrix 2.0 is a massive step change forwards; https://www.youtube.com/watch?v=gHyHO3xPfQU etc.

But I can see why bad experiences in the past would stick.

I disagree--it doesn't feel resolved. I've been trying to use Matrix for so long now, and just recently gave another shot at helping my partner get up and running with Element X on her M4 iPad.

It's still so clunky and so difficult to get off the ground. To start, E2E key verification just wouldn't work on Element X; she had to install Element, verify my key there, and go back to Element X.

That would be easy to overlook if the UI felt responsive and snappy, but it doesn't. It feels far from native. I don't know if it's Electron under the hood--I haven't checked--but it sure feels like it. It feels unresponsive in the same way as a stereotypical bank app, like walking through Jello. Maybe it's a protocol issue; I'm not sure.

I've got a nice, powerful homeserver running, waiting for love, but it will continue waiting until such time as there's a responsive client. Every month or two, I upgrade it and give it another shot, but I always end up back on a mix of Telegram, WhatsApp, Slack, and Discord. None of my work or social circles are willing to make the switch when it feels so slow.

This sounds very strange. Element X on iOS is a native Swift UI app, and for me (even in an enormous account) it’s super snappy - similar to WhatsApp or Telegram or iMessage. It’s not Electron, which is only for desktop apps; is there a chance you’re mixing up Element X with Element Web/Desktop (which is still sluggish, but should get much-needed upgrades this year)?
No, there's no chance I'm mixing them up. It's Element X from the App Store. The app label is "Element X".

If I'm using a mobile app, chances are I'm on-the-go. I probably have a slow, high-latency, or otherwise unreliable connection. It's possible it comes down to protocol differences that hinder UI responsiveness.

Edit: As a test, I just sent a message from my phone while on a cell connection with good service. Hitting the send button felt unresponsive: it took a bit for the message to appear in the chat history (maybe 100-200ms). That's on a stable 300 Mbps connection mere miles from my homeserver.

For contrast, Telegram doesn't wait to clear my text area. I can queue further messages to send even if my first hasn't gone through. Same for Slack and Discord.

Same here. I really like Matrix protocol but Element on desktop and Android is... Still beta? Recovering keys is not user friendly. Many family members use unverified devices after upgrade. Editing is laggy, new channels connect for ages...
I’m not sure I’m seeing what you’re describing. Here’s a screen recording of send performance (on fast internet, a few ms ping to the homeserver): https://github.com/element-hq/element-x-ios/issues/3810

The first msg does take a little longer to clear the composer, but it’s barely noticeable. And as the recording shows, it queues up msgs fine if the first hasn’t gone through.

How does this compare with what you’re seeing?

It's hard to say because I can't see when you're clicking, but that looks snappier than what I'm seeing. I'll comment further in the issue and attach a screen recording of my own.
So what exactly is the status of Element X? I was under the impression it's still in development, lacking some features of the old app, and will fully replace it when it's ready.

If I search for Element on app stores I still get the old app first (with millions of installs, vs. tens of thousands with Element X), and https://matrix.org/try-matrix also still points people to the old app. So I'm confused what "past" you're talking about :)

Similar situation with Dendrite BTW, it's been in beta forever, and the only private Matrix community I ever was a part of ditched it because Synapse was too much of a resource hog, and there's no clear migration path.

Element X exited beta in September, and is the preferred app from Element, as per https://element.io/app-for-productivity

It doesn’t have threads or spaces yet; threads are underway currently; spaces will follow.

Dendrite on the other hand has been relegated to an experimental server; we didn’t have bandwidth to do both Synapse and Dendrite so focused on improving Synapse instead, which has steadily become less of a resource hog. Guess we should provide dendrite->synapse migration paths.

Thanks! But still not sure why Element X isn't featured more prominently on matrix.org then.

And surprised to hear Dendrite is now just experimental and not the future anymore. The README and FAQ on GitHub give no indication of that at all, maybe start there?

> But still not sure why Element X isn't featured more prominently on matrix.org then.

That looks to be a snafu. It’s featured on https://matrix.org/ecosystem/clients/ for instance.

> And surprised to hear Dendrite is now just experimental and not the future anymore. The README and FAQ on GitHub give no indication of that at all, maybe start there?

Yup, the readme needs to be updated and that’s with me.

Only for mobile, no? Element X for desktop is still in development, last time I checked, and the old client is as bad as ever.

Element is the only piece of software where logging in and out (I don't want to be permanently logged in) proved to be too much of a challenge - I was regularly losing encryption keys on different devices.

Don’t log out!

If you are ever at a point where you have no active sessions (aka “devices”) then other clients will not be able to send you the keys to decrypt their messages.

This is one of the many ways to get “unable to decrypt” errors in Matrix.

yup, only on mobile. Element on Desktop is yet to be revamped, but hopefully we’ll do so this year.
Matrix works fine for many people. If there's something similar but better, it's free to compete.
Concur. Element is embarrassingly buggy.
I have no skin in this game but I'm honestly baffled.

A group of friends and I have been using Matrix for a couple of years now (web, Android, iOS, maybe some native clients (not sure here)) - and it's just been working. So maybe we're just using it somehow differently but we've all been quite happy with it.

The only oddities I'd noticed was when joining a massive channel, and people posting from the @matrix.org homeserver instead of their own or this small community one.

Cliffnotes (Anecdotal):

  - Very slow for a chat client. Startup, input lag etc
  - Continous popups to verify/authenticate. I was never able to complete this process to to some combo of bugs, or the difficulty level being beyond me.
  - Synchronization bugs between desktop and mobile clients; messages would be missing for some people, or on some devices. Or the messages would show, but edits not reflected.
the old Element apps were; have you tried Element X?
Yes ... my matrix.org account is still many times slower than my other chat apps and there's spam everywhere. It's not a great experience. I'm really hoping to see Matrix go big but it feels like there's still a long way to go.

That said, ElementX's video and audio calls work really well. If you added the ability to ring people's phones, so I don't have to first negotiate people into the chat using text messages or a phone call, I could see using it instead of FaceTime.

hm, Element X should outperform other chat apps; mine does and I’m in 5000 odd rooms. What platform and hardware are you on?
Pixel 9. Here's an example: GrapheneOS General is mirrored to Discord. Open both and start scrolling up. ElementX shows the spinner for 3 seconds at a time, Discord spins for 1/2 second or so. Go ahead and race them, it's not even close.

Another example: Matrix HQ is always notoriously slow. Just now I opened it and there are no messages ... none. No spinner. Just a note at the bottom saying "27 room changes." I waited for at least 10 seconds. Force quit the app, reload, and the messages are there.

What platform are you using that performs so much better than mine?

iOS.

I suspect you are hitting perf issues on Android due to lack of caching (which bite Android way more than iOS due to JNA being way slower for calling the rust-sdk than Swift’s rust bindings). This should be fixed by https://github.com/matrix-org/matrix-rust-sdk/issues/3280, which as you can see from all the checkboxes is making progress.

No; will give it a shot; ty!