Why is Matrix popular? Why isn't XMPP? - A man struggles with understanding alternative chat solutions.

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
I don't know much about either of these but I'm becoming more interested in the topic of private and decentralised communications in recent years (can't think why!).

I see looking it up that XMPP was introduced in 1995 (I thought I had never heard of it but I know now it's the newer name for Jabber) and Matrix was introduced in 2014. So Matrix is much newer. What lack in XMPP was Matrix trying to address if XMPP already existed? And I'm curious what sort of communities use both of these. Like I knew Jabber was used internally in a number of tech companies because we had it, but I don't think I ever saw it used outside of that. Matrix I don't know who uses it - like are there particular communities that favour one or the other?
 
I don't know much about either of these but I'm becoming more interested in the topic of private and decentralised communications in recent years (can't think why!).

I see looking it up that XMPP was introduced in 1995 (I thought I had never heard of it but I know now it's the newer name for Jabber) and Matrix was introduced in 2014. So Matrix is much newer. What lack in XMPP was Matrix trying to address if XMPP already existed? And I'm curious what sort of communities use both of these. Like I knew Jabber was used internally in a number of tech companies because we had it, but I don't think I ever saw it used outside of that. Matrix I don't know who uses it - like are there particular communities that favour one or the other?
XMPP was used as the backend for Google Chat, Facebook Messenger, and for notifications on iOS before around 2012. There is a lot more it was involved in, being the backend of a lot of shit people used to use without realizing it. I theorize that a major part of Matrix and its popularity was troons. It's made just using the HTTP protocol with JSON, with clients all mostly ranging around the use of Electron. This seems typical for troons, and I often find a lot and a lot of troons on Matrix. XMPP is old, but it's mature and well established, and it's use of XML makes it easy to read and make things for it. The people behind it seem to be mostly people who actually know what they are doing, and I hardly notice troons around unless a MUC (Multi-User Chat) also bridges to Matrix.

I encourage you to actually look into the technologies behind both. Matrix just seems like a mess in comparison.
 
So you use Prosody eh? Why do you use it over ejabberd?
Simply because it is made in C++ and its modules are in Lua, but it turns out it is pretty much the recommended server to use. Even the ejabberd devs recommend Prosody.
If I want a discord'ish sever with audio and video what would you recommend me looking into me setting up?
You should probably look at the big media focused ones like Movim or Jitsi. They seem to get video/calls working better along with the clients that support it.
 
  • Informative
Reactions: generic sauce
XMPP was used as the backend for Google Chat, Facebook Messenger, and for notifications on iOS before around 2012. There is a lot more it was involved in, being the backend of a lot of shit people used to use without realizing it. I theorize that a major part of Matrix and its popularity was troons. It's made just using the HTTP protocol with JSON, with clients all mostly ranging around the use of Electron. This seems typical for troons, and I often find a lot and a lot of troons on Matrix. XMPP is old, but it's mature and well established, and it's use of XML makes it easy to read and make things for it. The people behind it seem to be mostly people who actually know what they are doing, and I hardly notice troons around unless a MUC (Multi-User Chat) also bridges to Matrix.

I encourage you to actually look into the technologies behind both. Matrix just seems like a mess in comparison.
Yes, I read the earlier posts but I'm not sure this fully answers my question of what lack in XMPP the Matrix protocol was trying to address. Or are you saying that Matrix Protocol does nothing that XMPP already doesn't and it was created just because some people felt like making a new protocol?

As regards XML I have never liked it (and I was working in IT around the time it came out) and your opening post calling Matrix the C# of programming languages didn't win me over as I quite like C#.
 
Or are you saying that Matrix Protocol does nothing that XMPP already doesn't and it was created just because some people felt like making a new protocol?
Yes, I am saying that. Matrix does things worse than XMPP in a lot of ways.
As regards XML I have never liked it (and I was working in IT around the time it came out) and your opening post calling Matrix the C# of programming languages didn't win me over as I quite like C#.
I don't and I code in it. In this case, I won't try to win you over, I'll just call you retarded instead.
 
  • Agree
Reactions: Baguette Child
Yes, I am saying that. Matrix does things worse than XMPP in a lot of ways.

I don't and I code in it. In this case, I won't try to win you over, I'll just call you retarded instead.
Well I just can't understand why Matrix was able to establish itself when XMPP has such skilled advocates as yourself, is all I can say.
 
Well I just can't understand why Matrix was able to establish itself when XMPP has such skilled advocates as yourself, is all I can say.
Matrix is flashy and ~relatively~ easy to setup for newbs. XMPP on the other hand, often has clients that remind one of a 2003 era Windows XP software, with server software that is ancient (ejabberd is over 21 years old as of a couple of days ago). Matrix supports encryption pretty natively/easily, whereas OTR/OMEMO can be frustrating and a hassle.

It's important to note that XMPP can provide more Privacy, provided you are using an onion service to message a user who is using another onion service, yet by default neither Matrix nor XMPP is private, as your server address (if self-hosted) is public. If you're using a 3rd party service for either, like registering an account on matrix.org or xmpp.is, then you are placing your trust in these entities who often require an email anyways.
 
  • Informative
Reactions: Overly Serious
Matrix is flashy and ~relatively~ easy to setup for newbs
If you are talking about the clients, sure. Servers on the other hand require a bit of technical knowledge and include a lot of terminology that doesn't make it a piece of cake for newbs. XMPP has pretty much streamlined its configuration. Prosody configuration is so easy. I've spent less time configuring prosody then any Matrix server.

often has clients that remind one of a 2003 era Windows XP software, with server software that is ancient (ejabberd is over 21 years old as of a couple of days ago).
The available clients do need work, that I won't deny. However, I fail to see the problem with older server software. If anything, this only provides evidence of the maturity and stability of XMPP over Matrix. Just because it is new doesn't mean it is better, just look at how often your appliances tend to break. ejabberd and several other server implementations are still very well maintained and still being updated.

Matrix supports encryption pretty natively/easily,whereas OTR/OMEMO can be frustrating and a hassle.
I will argue and die on the hill that OMEMO is so fucking easy compared to Matrix. I have multiple devices, and never had a single issue with XMPP on OMEMO. Matrix would entirely fuck up keys and screw devices up. I'm not sure how the fuck anybody is having issues with OMEMO. OTR is a mess though, that I will agree with (which is why nobody uses it anymore).

It's important to note that XMPP can provide more Privacy, provided you are using an onion service to message a user who is using another onion service, yet by default neither Matrix nor XMPP is private, as your server address (if self-hosted) is public. If you're using a 3rd party service for either, like registering an account on matrix.org or xmpp.is, then you are placing your trust in these entities who often require an email anyways.
This is regardless of whatever service you are using. This is (or should be) common knowledge on the Internet. I do think that the tools and design of XMPP allows better privacy regardless of Host (if not self-hosting). There are some iffy things about Matrix and its privacy that seem more like it is a rushed project than something meant to last.
 
Matrix and its users think they are the best thing around but its such a bloated protocol that is incredibly broken with implementations that are incredibly sad—
A protocol being built on top of HTTP does not make it bloated, anyone who has setup a web server nowadays should know that 1) HTTP has supported connection re-use since HTTP/1.1, and 2) HTTP/2 has very minimal overhead once the connection is established. Modern HTTP clients are not creating a brand new connection for every request, and that hasn't been happening since HTTP/1.0; As for authentication, the time it takes for synapse/dendrite/construct/whatever to ask redis or postgres for information on an access token is negligable. For the endpoints themselves, you would have to compare a bare (see: unusable) XMPP server to Matrix to consider it bloated. Most of the complexity in the Matrix spec is related to federation and state resolution, not the client api, which is presumably what you are seething about.

but their polling (a way to keep the same connection alive) is done terribly. Every time your client or a server connects to the HTTP matrix server, it has to reauthenticate through cookies and headers. And all this so it sends a bunch of JSON through the body. In comparison, XMPP uses XML through TCP, with—
The sync api is dumb, but not for the retarded reasons you cite. As mentioned above, modern HTTP clients reuse connections. Sync filters are saved and referenced in subsequent sync requests. Your average client sync will only contain a filter id, access token, and sync token. Nothing else.

I don't actually have a clue on why this is but it is so frustrating… takes up 2 full cores on an AMD EPYC, and about 2 gigabytes of RAM—
You can easily configure synapse to block joins to complex rooms. Matrix chatrooms, unlike XMPP chatrooms, are decentralized. All participating homeservers must resolve the current state of the room themselves, instead of just blindly trusting the server that created the room. For large rooms, like Matrix HQ, this means constantly revalidating the state of the room whenever a user's information changes or a message is posted. This also means talking to hundreds of different matrix servers to exchange server keys and messages. Comparatively, your XMPP server is doing a lot less. No shit it's going to be less resource intensive.

If synapse is raping your EPYC while doing nothing, then you've pretty clearly fucked something up.

On my server, I have clearnet, tor, and i2p access all in one server, all interlinking and supporting everything. You cannot have this with Matrix (from what I know). You have to have multiple Matrix instances for each proxy and it can only connect through that proxy. That means clearnet can't connect to tor or i2p, i2p can't connect to tor and cleanet is proxies, and tor can't connect to i2p and clearnet is proxied.
Wrong, again. Child



To answer OP's question: people use Matrix over XMPP because it's easier to setup and people are generally more welcoming and less elitist. Setting up synapse, the reference homeserver implementation, will give you a feature-complete chat server that's ready to go without any additional fiddling with which protocol extensions you enable. Element is available on all major platforms, and works well enough for most people, despite the best efforts of the Element developers. Matrix has batteries included, whereas XMPP expects you to check a wiki to find out which ones you need for the specific XEPs you want to use.

TL;DR
 
To answer OP's question: people use Matrix over XMPP because it's easier to setup and people are generally more welcoming and less elitist. Setting up synapse, the reference homeserver implementation, will give you a feature-complete chat server that's ready to go without any additional fiddling with which protocol extensions you enable. Element is available on all major platforms, and works well enough for most people, despite the best efforts of the Element developers. Matrix has batteries included, whereas XMPP expects you to check a wiki to find out which ones you need for the specific XEPs you want to use.
Username does not check out.
 
  • Like
Reactions: Lord Xenu
Just boomer it up with AIM/ICQ, bro. We have the server software that is dead simple to setup and run.
All it takes is a shitbox with a direct IP, and you can sneed with your friends like it's mid-00's again.
Or use one of public servers if you don't wanna to run your own private server.
 
Username does not check out.
Matrix is shit but not for the reasons the pedofurry is seething about.
  • User-level issues:
    • Users can't control who can invite them, i.e: that thing Discord has had for a decade now.
    • Users can only block individual users, not servers. So any attacker who has enough autism points can just use alt accounts to harass users.
  • Room-level issues:
    • Only individual users and individual servers can be banned. You can't rangeban users or servers.
    • Moderation bots can't prescreen messages, meaning that cpnigger spam will be up for a few seconds before your jannybot autoremoves it, meaning any unfortunate user looking at chat at that time now needs eye bleach. This also means that the user's server has that image now cached in their media repo.
    • Room admins can't restrict users from posting attachments and require a jannybot to autoremove messages, which is reactive and is problematic for the above reason.
    • Approved joins (room knocking) is shit and pollutes the room state, meaning that flooding a room will still slow it down even if the room is knock-only.
    • Room splits are rare but still happen because morg prioritises bikeshedding pronouns over fixing state resolution bugs.
  • Server-level issues:
    • Even doing basic sysadmin shit like user management, room management, and viewing reports requires you to install a community-developed admin dashboard.
    • Monitoring newly created users will essentially require you to write your own scripts.
    • Blocking rooms created by known abuse actors is not possible without custom-written modules or scripts.
    • Media repo is dogshit and only recently now blocks random foreign users from using your homeserver as a proxy for downloading cp from other homeservers.
    • OLM is shit and should just be replaced with the signal protocol.
    • Room & server keys will get desynced if a server is down for an extended period of time and resolving that is not intuitive.
  • Community-level issues:
    • Matrix, like other FEDerated protocols, has a massive abuse problem. At least 28,000 users are known to seek or distribute abuse material, and that's a year-old statistic by now. The usercount today is probably above 30k
    • matrix.org, the default homeserver for matrix, is filled with cpniggers and the morg jannies do the bare minimum about it. Since they don't proactively find and ban them, they end up eventually going to other homeservers and causing issues.
      • A year ago, you could literally find csam trading rooms by just searching in morg's public room directory, they only cleaned that up after being publicly called out on it multiple times. You can still find them, but most of the ones just called 'child porn' are gone
      • The morg jannies are nigh impossible to actually talk to and demand you email them as opposed to using the protocol they literally develop.
    • Synapse and Element rarely accept contributions outside of their bubble. This also includes spec proposals, including ones that fix some of the issues mentioned above.
 
Last edited:
Ahhh thank you for making this thread. I've been toying with Matrix for almost half a year because everyone I know uses Discord and I have been losing my mind trying to escape from it. Honestly had never even considered XMPP because there just seemed to be so many resources for Matrix already
 
  • Like
Reactions: The Anarki Main
Matrix's moderation problem really is embarrassing.
I am in the CalyxOS chatroom since I use CalyxOS and I go there to ask questions whenever shit inevitably breaks, not even a week after first joining someone (maybe a Daniel McCay orbiter) joined to spam loads of illegal shit. A mass exodus of users leaving out of disgust would inevitably follow. Now this is partly the fault of the group moderators who didn't do jack shit for like 20 whole minutes while we were busy trying to get police involved, but it also highlights a core issue with Matrix infrastructure that encourages the behavior.

From what some instance operators have told me, the reason this is so prominent on the Matrix fediverse is because attachments are downloaded and cached by the recipient server(s), meaning that flooding a chatroom with CP is a really effective way to get a server host you don't like raided by federal agents. And these guys usually don't get caught doing it because the abuse report contacts on their providers don't do shit and they constantly hop instances anyway.

On the other hand, every Jabber group chat I've seen takes moderation very seriously and the worst I've ever seen after using it for years is one group of skids trying - and failing - to DDoS random servers before fucking off to never be heard from again.
 
Matrix is easier to set up and has more visually appealing clients. Much easier to get normalfriends to use. XMPP is better in almost every way as a protocol, especially in resource usage, but its clients always have at least one thing, usually several, stuck in 2004. In Movim, you can't edit any post but your last. In Converse.js, you can't react to posts because it breaks search, etc.

From what some instance operators have told me, the reason this is so prominent on the Matrix fediverse is because attachments are downloaded and cached by the recipient server(s), meaning that flooding a chatroom with CP is a really effective way to get a server host you don't like raided by federal agents. And these guys usually don't get caught doing it because the abuse report contacts on their providers don't do shit and they constantly hop instances anyway.
It's because it's a pain in the ass to moderate at all, let alone actually delete media. You need a server admin, not a room admin, to run media purge commands on the machine, which up until recently were buggy and would leave random images on the disk. Go figure the trouble these retards have realized they can get people in because of this.
 
Matrix's moderation problem really is embarrassing.
I am in the CalyxOS chatroom since I use CalyxOS and I go there to ask questions whenever shit inevitably breaks, not even a week after first joining someone (maybe a Daniel McCay orbiter) joined to spam loads of illegal shit. A mass exodus of users leaving out of disgust would inevitably follow. Now this is partly the fault of the group moderators who didn't do jack shit for like 20 whole minutes while we were busy trying to get police involved, but it also highlights a core issue with Matrix infrastructure that encourages the behavior.

From what some instance operators have told me, the reason this is so prominent on the Matrix fediverse is because attachments are downloaded and cached by the recipient server(s), meaning that flooding a chatroom with CP is a really effective way to get a server host you don't like raided by federal agents. And these guys usually don't get caught doing it because the abuse report contacts on their providers don't do shit and they constantly hop instances anyway.

On the other hand, every Jabber group chat I've seen takes moderation very seriously and the worst I've ever seen after using it for years is one group of skids trying - and failing - to DDoS random servers before fucking off to never be heard from again.
I'm not as familiar with how bad it is in public matrix rooms since I tend to stick to private ones, but even despite that I still end up occasionally getting invited to dms by spambots advertising dedicated cp rooms. As far as I'm aware, several of the official Matrix rooms have been targetted, in addition to other popular community rooms.

The way the media repo works is extremely retarded, however the miggers did manage to actually slightly improve it with "Matrix 2.0" (marketing name for a glorified hotfix) where they slightly locked down the media repo so it doesn't act as an unauthenticated media proxy anymore. Not sure as to how common weaponized cp is but I know of at least one instance where it's gotten a homeserver taken down temporarily.

The increase in cp spam is unsurprising given how many cp rooms there are. There are thousands of them, the vast majority of which are filled to the brim with miggers (matrix.org users). Given the scale of the problem and the amount of other retardation on matrix (furries, retarded leftists, autist-o-spergs, etc) I'm surprised there isn't a megathread.

Could post an anonymised & censored list of some of some known abusive rooms for context but I'm unsure if the KF jannies would be ok with that or not, even if most of them are named things that would be generic enough to find anyway. (many rooms literally just include 'cp' or similar in the title). A lot of them hover around the 1k-4k usercount.

Upper Echelon made a video that broadly summaries the problem. Skip to 4:33 if you already understand how federation works. https://youtu.be/W8KEuAEYjQ4



It's because it's a pain in the ass to moderate at all, let alone actually delete media. You need a server admin, not a room admin, to run media purge commands on the machine, which up until recently were buggy and would leave random images on the disk. Go figure the trouble these retards have realized they can get people in because of this.
Room admins can remove the messages that link to the media, but not the media itself. Obviously, only server admins can remove media stored on the server. The reason removing "image messages" doesn't also automatically remove the media is because the media repo is seperate from the client-server api. A matrix client first uploads the media, and then links to it in the message they send into the room. This means you can take the media upload reference (mxc) and re-use it.

Ahhh thank you for making this thread. I've been toying with Matrix for almost half a year because everyone I know uses Discord and I have been losing my mind trying to escape from it. Honestly had never even considered XMPP because there just seemed to be so many resources for Matrix already
The catch is that despite Matrix having a fancy looking set of clients, moderation tools are essentially non-existant for room and server jannies. Basically all of the homeserver admins I know have resorted to using their own custom-written scripts. If you want to use Matrix: disable registeration and never federate. You should never make the mistake of hosting a publicly facing service for free.
 
Last edited:
All federated chat instances are dog shit. Since someone still ultimately controls your data you're in the exact same situation as using a centralized service, but instead someone having a profit incentive to help you, it's a goof ball tranny or schizo hobbyist holding your years of chat history. People usually cope and say its a general "step in the right direction" but, outside of not using proprietary software for clients and natively supporting some kind of encryption, there is generally no major benefit. You're still trusting a webmaster at the end of the day with data you're not storing and backing up. It's liable to be lost and you're liable to just be cut out of whatever network there is without notice.

The true solution is for someone to finally figure out how to get p2p chatting with media support, offline messages, message history, and ideally voice and video working in a way that doesn't suck ass. That will require people actually save the data they want to keep on their own devices (or at least trust it with a friend while they're offline), which is something nu-computer users are just allergic to for some reason.

Personally, I think they all might be retarded and deserve their fate.
 
Back