Live data from Hacker News

XMPP vs. Matrix

news.ycombinator.com

1–10 of 92 posts

XMPP vs. Matrix

#1
I want to know everybody’s opinion on what’s better to use today, XMPP, or the Matrix protocol? Maybe also what’s easier to convert your friends and family to.

Re: XMPP vs. Matrix

#2
My friends and I all selfhost own matrix homeservers and we use it to chat. It works reasonably well, but stil the administrative work required should not be underestimated, comparable to selfhosting e-mail.

Regarding features, matrix is promising and definitly innovative, but espacially the mobile apps don't have the same level of usability like WhatsApp or novel features like Telegram. Techsavvy friends can definitly use it, but you don't want to become a managed service provider for your broader family.

I use this ansible playbook to provision my server and related services (monitoring, bridges, ...) [0].

The bridges espacially make it fun to play around with.

[0] https://github.com/spantaleev/matrix-docker-ansible-deploy

Re: XMPP vs. Matrix

#4
> Maybe also what’s easier to convert your friends and family to.

You will need to pick a client that you can recommend to your friends and family, because they likely won't bother to look one up. If they are non-technical, then the client is what matters most for them and you need to decide what makes the most sense given their circumstances.

On the matrix side I can recommend Element (https://element.io/) which has a lot of eye candy. I'm not sure what to recommend for XMPP.

You also need to pick a server for them, because again, they won't bother to choose one themselves. If you can, host a XMPP or matrix server yourself!

Re: XMPP vs. Matrix

#5
It's apples vs oranges. I selfhost and use both, ejabberd / conversations for xmpp and synapse / element for matrix.

XMPP is traditional IM. I use it exclusively from Conversations client on Android / GrapheneOS and it is really instant, supports presence (knowing whether contact is actually online), rings for audio and video calls, gives feedback about whether user read the message etc. I use it mostly for 1:1 conversations, it has all but replaced SMS and phonecalls.

I consider matrix more like 'fast forum'. Perhaps things changed but last I checked (from element on Android / GrapheneOS) there was no presence so I have no idea whether contact will get my message immediately or not. No confirmation that contact read the message. Audio and video calls not working, not even ringing when phone is locked. Quite laggy in message delivery.

So, after some years of using both, XMPP is best for replacing one-to-one SMS, video and audio calls, while I enjoy hanging in public matrix rooms, treating them like '(not really) instant forums'.

Re: XMPP vs. Matrix

#7
In order to answer this question it is important to understand the fundamental difference between XMPP and Matrix.

XMPP was invented at a time, where communicating online meant sending a message from one device to another.

However, the modern expectations for messaging apps are much more than that. Sending media, using multiple devices, deleting messages, editing messages, read receipts, notifications when typing, group chats, threads, and even managing communities are all things a modern messenger app should be able to do. The fundamental operating principle has shifted from mere message passing to synchronising a common state between all participants. If you think about it, nowadays, you're not chatting anymore. You're essentially collaboratively editing a shared chat history file, where the most common action is to add a message; usually at the bottom.

This is what Matrix is at its core. It's a protocol to synchronise state, and that's part of why Matrix is so complex and hard to administrate. I personally think its the better base for the future of communication than XMPP, and I havent even mentioned encryption yet.

Moving on to the practical part: Running a Matrix Synapse server is quite a commitment, but if all you want is talk to friends and family, then there are simpler options. Conduit and Dendrite are a bit easier to set up, and of course there are plenty of public homeservers you could sign up with.

If you do commit to running Synapse however, you have the option to install bridges to almost any other messaging service. This way, your friends and family can keep using what they're used to (WhatsApp, Telegram, Discord, Facebook, ...), and you just use one single Matrix client to talk to all of them.

That's what I do.

Re: XMPP vs. Matrix

#8
Haven't used XMPP much so can't comment on that but in case of Matrix, I use conduit (server) + cinny (client) and it's much lighter and better setup than the synapse and element. Conduit isn't super feature rich nor cinny but if you aim for rich text messages it works well.

Re: XMPP vs. Matrix

#9
XMPP + OMEMO (E2E encryption), no doubt. Open standards, multiple implementations, cross-platform and it mostly just works. Light on the server, "maintenance-free". Conversations on Android, Gajim or Dino-IM on desktop.

I tried Matrix but found it to be more complicated without adding significant functionality.

Post reply on HN