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?
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:
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.
This is the correct answer, IMO.
I loved using XMPP back in the day, but I struggled talking with people who weren’t on the same server as me because of spec and client variations.
While Synapse is a resource hog, it (and Element) - to a certain degree - does the job. Can’t wait until sync v3 lands in the main server.
The only issue I have is with one friend who insists on deploying his own version of Synapse, but can’t figure out coturn and - as a result - we can’t voice chat properly.
Goddammit. Two steps forward, one step backward. 😅
Funny I just launched Conduit this morning. Seems to work better than Synapse and is supposedly lighter.
Conduit sounds very exciting - but my synapse installation (and its concomitant database) is too old and big for me to make a switch to anything else just yet.
But I’m hoping Dendrite will one day allow me to migrate over - I don’t like how one of my most mission critical programs is a Python program running out of a packaged venv. 😅