I’m looking into hosting one of these for the first time. From my limited research, XMPP seems to win in every way, which makes me think I must be missing something. Matrix is almost always mentioned as the de-facto standard, but I rarely saw arguments why it is better than XMPP?
Xmpp seems way easier to host, requiring less resources, has many more options for clients, and is simpler and thus easier to manage and reason about when something goes wrong.
So what’s the deal?
Many people have not used XMPP in years or never and go by hearsay of outdated information.
Matrix on the other hand had several million Euros of venture-capital to fund a marketing campaign.
This makes matrix even less attractive to me lol. But you’re right, that’s a very good point.
Holy shit, that explains how this piece of embarrassment has conned actual people into using it.
several million Euros of venture-capital to fund a marketing campaign.
Citation needed. Matrix was funded by Amdocs initially, then got investment from Automattic and has gotten some contracts from European Governments, but AFAIK there is no “VC investment” and there certainly aren’t “millions to fund marketing”.
They do have better marketing than any XMPP developer, though. You basically don’t hear anything from process.one or the Prosody devs.
As unpopular as VC funding is in some circles, the Matrix community owes a huge debt of thanks to Element’s investors (Status, Notion, firstminute, Dawn, Automattic, Protocol Labs and Metaplanet) and Amdocs for funding over $50M of work on both Matrix and Element since 2017.
has many more options for clients,
The problem of XMPP is here. These options are not uniform among the possible different combinations of servers and clients.
The situation has improved a lot, but there was a point in time where saying “this is my XMPP handle” was far from enough to know if you’d be able to communicate with others, and you’d have to figure out things like:
- Does the server support MUC?
- Does the server support E2E? If so, which?
- Are emojis supported on the server, or do they get converted to ASCII?
- Can you use audio calls? If so, which codec?
- If my client supports “share live location”, what do you see on your end?
Not to mention that until recently there was no decent XMPP client for iOS. Even today, the best alternative is siskin, which may have its vocal fans but quite frankly is pretty barebones and has a UI that would be considered ugly even in 2010.
Matrix as a protocol is technically worse than XMPP and Synapse is a resource hog compared to Prosody and Ejabberd? Yes, true. But at least I can tell non-technical people to download Element from the App stores and they will have a consistently-not-great-but-acceptable-and-improving experience.