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?
@cyclohexane I can only speak from my personal experience having hosted both XMPP and Matrix for friends/family before.
Ran XMPP (eJabberd) for round about 10 years and it never really was a trivial process, neither for me as admin nor for my friends/family with regards to parcipating.
Basically, back then, I had to manually extend eJabberd with a bunch of XEPs (namely push notifications, message carbons and message archive) to increase the useability and user convenience to even stand a chance getting people on board and able to use the system. The client ecosystem was not quite there yet either - Conversations for instance had just come around to shaping up for android, Gajim for cross-platform was pretty fine though.
Let’s not talk about E2E encryption either: GPG - not a chance, OMEMO was just coming around as well and was not yet very reliable.Matrix on the other hand was quite the breakthrough for me as an admin with regards to user acceptance. I do believe that a big part of that comes from the concerted effort to have a unified client (Element) available on any platform - web, fat clilent, mobile client.
By now there’s also a ton of cross chat platform bridges which also greatly serves as a “selling point” towards users. And most imporantly, again in my humble opinion, the required technical knowledge barrier for users is just not comparable to XMPP.Don’t get me wrong, I’ve learned so much as an admin setting up and hosting XMPP and for a short while I even had a PoC going at work to try and advocate the protocol, but in the end Matrix feels like a worthy successor to me.
It allows me to convince “normal users” to use a federated, self-hosted and free chat platform reliably - and that’s what mostly matters to me :wink:You might want to try Snikket for XMPP then. Really streamlined hosting experience all out of the box. But Ejabberd also improved massively in that regard and their Docker images and deb/rpm repos pretty much work out of the box these days.
I host both Ejabberd and Synapse since some years and while I can see how self-hosting Synapse is a bit more approachable for first time self-hosters since it uses mostly web-technology under the hood, Ejabberd has been much less of an headache to maintain over the years. It pretty much just works and uses very little system resources (contrary to Synapse, even though it has improved a bit in that regard lately).
Edit: OpenPGP is supported by some XMPP clients for many years and OMEMO is significantly less problematic than Matrix e2ee in my experience. Matrix is a never ending stream of forced key resets and “message could not be decrypted” if you use it with the official web-client.
Prosody is also really easy.
Does snikknet federated properly? It’s weird they don’t seem to mention XMPP anywhere on the site
Yes it does. It really is just a pre-configured Prosody server, made by one of the core Prosody developers.
Snikket does not mention XMPP intentionally as their entire reason for existing is that it is supposed to be XMPP for people that don’t care what XMPP is. They laid out that reasoning in a blog post a while ago.
Interesting, thanks!
I think that the reason is the same for “why is XMPP mentioned more than IRC?”. IRC has more clients, it’s less resources hungry and simpler than XMPP.
I think that the reason is because it is old-fashione, and it’s clients feel outdated and (native) “lacking features” compared to more popular clients like Discord, WhatsApp, Messenger, Telegram or Signal. 🤷♂️
I can imagine my cousins using any of the clients I mentioned before, but not IRC, XMPP, or any protocol from my era. Life and traditions, isn’t it?
From a quick look into XMPP’s clients for android, they seem nice and some have modern features too.
Is there any technical limitation that would prevent xmpp client from having a WhatsApp-like UI?? WhatsApp started out with XMPP and probably still uses a variant of it. If anything, I’d imagine its harder with matrix given the complexity of the protocol.
But your cousin almost certainly already uses XMPP, in the form of Messenger, WhatsApp, iMessage, gChat, Zoom, or something like that…
Matrix is newer, afaik it is used by more foss projects for communication than xmpp, and it has a more widely accepted standards base for things compared to xmpp, where I have often heard that it has multiple different implementations for things like voice calling and encryption which are incompatible with each other. Don’t take my word on it, but I hope that at least by reading this those interested can search for the issues and whether they are valid.
But then, what do you mean by xmpp being easier to host? I’m not familiar with XMPP hosting.
Matrix requires a home server, and a database server. If you want voice calls it also needs webrtc voice infra.Its newer.
Makes sense, but to me newness alone is not a benefit. In fact, it is a bit of a disadvantage. XMPP has more clients for example, and they are more mature.
Im 100% with you. If I were going to set one up it would probably be XMPP. However I havent dug into the features of each to do a proper analysis on which would suit my needs because I have no need for a chat service right now.
Matrix is almost always mentioned as the de-facto standard, but I rarely saw arguments why it is better than XMPP?
It is often considered the de-facto standard probably because many of its features, such end-to-end encryption and robust data synchronization, are already built-in. Matrix is perhaps a more user-friendly and convenient modern option for many.