Why exactly don't people use matrix that much? It strikes me as a reasonably good open, secure comms protocol.
One of the big problems is that folks judge Matrix based on the legacy Element apps, which have now been succeeded by Element X: https://element.io/blog/we-have-lift-off-element-x-call-and-... etc. Element X kicks ass, in my (very biased) opinion: it's a super-speedy Rust core with fancy SwiftUI and Compose native UI layered on top. It radically outperforms any other encrypted messenger i've used in terms of UI perf and usability.
However, because it's a rewrite, it doesn't quite have feature parity with the old apps, which are now over 10 years old: Threads is in beta; Spaces haven't landed yet, and Widgets aren't implemented yet. Therefore, we have to keep the old app around for users/customers who depend on those.
As a result, >80% of the people who say "Matrix sucks" are actually talking about bad experiences on the old Element mobile apps - rather than better client Element X or indeed Matrix clients from other folks.
There's also a large set of people who got bitten by encryption problems, almost all of which were fixed by Sept 2024.
Finally, there's folks who got bitten by the sad history of bridging in Matrix: IRC bridging used to be relatively okay; the team then got very stretched due to lack of funding; we tried to land a major PR to improve its architecture; the PR introduced bugs; Libera got very upset; we tried to fix things but failed to do fast enough. As a result, bridging to Libera in particular is awful these days, using adhoc bridges which funnel all traffic through a single user, with no ability to join arbitrary IRC channels on demand or use Matrix as a bouncer.
These days, the priority at Element is providing a self-hosted, decentralised WhatsApp and Teams replacement for governments... and once we get sustainable doing that, we'll be able to spend time building community features once again.
No one is going to use Matrix that doesn't have privacy-focused contact forcing them to because the privacy benefit of the slight inconvenience is something almost nobody cares about. Things that are non-issues to someone who read the online Matrix documentation becomes a mountain to a middle aged mom who taps through errors without reading them and is used to things "just working" in the way Apple products just work, not the way Linux just works.
If you log into multiple devices, you have to go through a verification process to verify the new device. You may need to backup and restore your encryption keys manually or all your messages will be "Unable to decrypt message". Keeping multiple clients open simultaneously is supposed to have one client request the keys from the other client, but this either takes a while or doesn't always work. I have a contact with an unverified device (so all his messages show up with a warning) who refuses to fix it because all the other messengers just work by logging in. This is on top of people being upset that you're adding one more app to their menagerie of texts, Facebook, Whatsapp, Telegram, Discord, etc.
I use Matrix with my close contacts but I can't imagine anyone ever saying "Damn, I'm going to use this instead of Discord now!"
Because it entails getting people away from WhatsApp/Telegram/etc. - I speak from experience.
Because the product design people there seem to focus on an enterprise use case where the client is pushed out with a custom config to devices, instead of catering to end consumer usages.
I assume this is caused by the company that does the Matrix development getting its revenue from such customers.
I get the impression it is more designed to be a Slack replacement than a Signal or WhatsApp replacement, which is a shame.
The official client is clunky and being electron on the desktop doesn't make it better. Messengers live and die on UX. Since it's an open protocol alternative clients exist of course, but are often not feature complete. Things are often slow, especially with large group channels with lots of messages.
If you host a server yourself - it's great that you can! - you'll try the official implementation, synapse — ...and discover that it's a resource hog. Things got a bit better with some streaming sync protocol or something like that, but last time I looked it up that was still experimental and the server is still a chonker. Again, alternative servers exist, again the problem with feature parity.
I feel like the protocol is bloated as well, but I didn't dive into it too much to have a good opinion on that.
When choosing a messenger, I go to Signal for security, to IRC for simplicity and to Telegram for UX. I never thought "Oh let's use Matrix"...