Hey guys, I recently started to play with the thought to deploy a Snikket (XMPP) server on my VPS to play around with it a bit. I already had a Matrix (Continuwuity) server running on an older VPS with Docker at one point. But besides me using some bridges (WhatsApp, Signal etc.) it didn’t see a lot of use. Originally I had set it up with the goal to replace Discord, but so far couldn’t get my small group of gamer friends to switch to something else.
What are your experiences with XMPP (doesn’t have to be Snikket) or Matrix? Would you recommend one over the other maintenance and/or usability wise?
Just curious what the community’s current sentiment is in regards to private self hosted messaging services 😊
couldn’t get my small group of gamer friends to switch
The hardest part of any change right there.
In my experience matrix is a total mess with plenty of bugs, also uses quite a lot server resources. xmpp is lighter, easier to set up and works flawlessly, and seem also easier to proxy or do stuff like that with it. Calls are kinda messy to set up tho.
Personally I like XMPP over Matrix because
- Matrix clients aren’t great (even element is buggy as piss on my phone and a shitty electron app on linux)
- Matrix is too difficult for “normal” people (I agree they should get good but they don’t and what good is a chat app without recipients).
- Matrix public rooms have a CP problem, and as such I can’t recommend people join it just in case, I don’t need my mom seeing that shit.
- Matrix was started as an Amdocs project before they defunded it and the lead dev went to form The Matrix Foundation. Amdocs is a Mossad affiliated company that infiltrated American telcom companies long ago. Matrix also pisses metadata to any server it federates with, including matrix [.] org, and I have no proof that Mossad is spying on that metadata but I have no trust either, nor proof that they aren’t, so I can’t trust matrix anymore.
Though XMPP also has had it’s own problems for me, so at the moment it’s my fallback and I’m trying out Delta Chat which I have been loving.
Couldn’t agree more with the first two points, especially the second one when it comes to adaptability by my non-techy friends and especially the wife-approval-factor.
I only tried out Delta Chat like two years ago linking it to a secondary Gmail account. Don’t think this really fully utilized it to its full potential. What do you like most so far about Delta Chat?
To me, XMPP is still the instant messaging gold standard. Everything has an app (or seventeen apps) supporting it, and it tends to just work.
My experiences with XMPP are: very good.
Matrix does more. I have used it on and off for fancier online meet-up type stuff. As others have said, it is relatively new, and that has various costs and drawbacks.
I hosted Matrix for several years. It mostly works fine, apps look consistent, bridges are nice, but is a pain in the ass in some aspects. Onboarding sucks. Data needs constant cleanup (or gigabytes of storage, even for a dozen users). Sometimes notifications are delayed hours. Sometimes images don’t load.
New Element Server Suite is more corporate-oriented, requires Kubernetes (!) to run, includes defacto mandatory services. Element X has no feature parity with Element Classic, especially calls.
I ran Snikket many years ago for a few months. But now they have smooth invites/onboarding, admin panel, and always had reliable notifications. Even bridges through Slidge. I plan to switch back to Snikket soon.
Nice blog post you wrote there, I like how you go into some details about the problems you faced hosting Matrix.
XMPP is great usability wise. Not sure what server is the best.
Nobody has mentioned mattermost yet. I haven’t stress tested it by any means, but I found it too be decent.
I haven’t use XMPP much. Matrix is kind of a nightmare. It has most of the important things of a chat platform but as others have said, is a pain in the butt to use. Encryption issues, slow loading, images not loading, etc. It’s also basically on-par with something like WhatsApp, security-wise, in that your message content is encrypted but pretty much nothing else is, and when 90%+ of users are in the matrix.org domain anyway, that’s not acceptable, in my opinion.
I would recommend SimpleX instead.
By desktop do you mean the jitsi call widget thing? Instead of the native call support that I believe element x uses?
Incidentally, I just setup my own Snikket server earlier today. Worked like a charm 😌 I haven’t done a whole lot with it yet, but I like its clear admin interface and the concept of circles. I had some issues with video calls (frozen picture) though.
Snikket user here, too. Have used it since maybe 2024 and are very happy. The only downside is the clients even if they are very good (especially Gajim and Conversations), but also video calls.
I got so annoyed with video calls I ended up with installing Jitsi Meet. Works like a charm with no issues with video, voice, rooms, screenshare, or chat.
So whenever I want to have a voice/video call with someone these days, Jitsi Meet is the only way to go for me. If the voice call need to have an extra layer of security, my Snikket server works good.
A lot of the people reporting issues with Matrix being slow and resource heavy are reporting issues with Synapse, which is Element’s big Python implementation. My Continuwuity instance, which is a server written in Rust, uses a fraction of a CPU and a total storage in the hundreds of megabytes. A few less features, but it has most of the ones people care about.
Can’t speak for the Synapse hosting, as back when I hosted one myself I directly started with Dendrite (was not really that feature rich) and switched to Continuiwity soon after. And I have to agree, ran like a charm on my VPS and didn’t use a ton of resources. Granted, I was the only user so can’t say how the usage would have increased with more users active.
Do the voice call and video features work with continuwuity?
On desktop? Yes. On Element X? Not yet. Requires additional setup, as it’s not a core part of the homeserver
So I’m going to be wierd one but I prefer Matrix more. Though I tried both. So with XMPP most often I had with custom ports setup and in some cases they did not worker well if you have reverse proxy in front of it so in my case it required tinkering with xmpp and ssl setup to get it right. As resource usage I agree it’s lightweight. Now moving to Matrix I used to be long time Synapse user then I moved to ESS setup it had higher first time setup but once you get running it’s working wery well. The new MAS system improved user onboard now I can share link and registration token and user can register like on many websites no manual work need. Also they added new admin panel but there is one pain here some things are locked behind Pro with I’m not fan off. So ye for me Matrix is much better but it depends on your hardware and target number of people.
No weird opinions, you do you and if Matrix suits your needs, great. In general I like the idea and concept behind Matrix, was a bit clunky to get it going initially but afterwards, with Continuiwity as backend server I have to say I ran quite smooth. I guess for a small homelab/self hosted setup with maybe a hand full of users, XMPP sounds easier to maintain. But I guess I’ll have to find out, probably going to deploy Snikket or Ejabberd for a test run.
Would recomend ejabder as snickers takes over ports 80 and 443
You can actually change these ports if you run Snikket behind a reverse proxy according to their advanced configuration docs. But yeah, probably going with something else than Snikket as it doesn’t really suite into my current Podman/Traefik setup. At least not without a lot of tinkering which I don’t feel like at the moment 😅
I couldn’t get into matrix, but I was a huge fan of open fire. It’s interface was stupid easy for XMPP administration and for awhile I ran it no issue with my group of friends. granted we ended up just going back to discord not due to any issue with the server or protocol but because it was tedious trying to get people to switch off a platform that works for most people.
Yeah that’s the thing with a lot of these platforms, it’s dead simple for most people to download the app and create the account. You already loose two thirds (if not more) of the people as soon as the sign up process gets a bit more complicated, even more if they have to manage and secure any kind of secret (encryption keys) themselves. Not that it would be so difficult to save this stuff in a password manager, but I guess that’s already where a lot of people still fall short… What a uphill battle that was (still is) with some of my friends and family to get them to use a password manager for a start.
There is also some that you just don’t want to put that type of responsibility onto either. I moved my grandfather to a password manager 5 or 6 years back. I reiterated at least 8 times do not forget this password if you do you will lose all passwords and need to do everything over again.
He lasted 3 or 4 weeks then suddenly called me saying he couldn’t remember his password period. Like he tried for a good 40 minutes to guess what he may have done and was in a pretty intense panic because he didn’t want to have to change every service he had.
Thankfully it had not been long enough for his file history backup to have deleted the file, so i just restored the last backup of his passwords.docx file and put it back where he was used to it. He lost those few weeks of new passwords but that was a lot better than losing every password.
I’m not about to try and have him use a password manager again, he has decent enough password management skills since he doesn’t reuse passwords period, but like, it was far too risky putting him on a password manager again.
I ran Matrix for like a year, and pretty much hated every minute. It was fragile, complicated, and incredibly, bafflingly resource intensive. Matrix is an overengineered nightmare in my opinion, and it seems to be quickly distancing itself from self-hosters while pursuing enterprise usage. Neat technology, horrible implementation, misguided company.
XMPP is a breath of fresh air in comparison. Just like we still use email everywhere (even for authentication nowadays, fun!), XMPP is not obsolete simply because it’s older. It’s a solid foundation, plenty extensible, and does almost everything I can imagine needing to do without unnecessary complexity.
Matrix’s bridges are its killer feature, and it’s nice… when it works. But it’s simply not worth the headache of dealing with Matrix, in my opinion.
XMPP is the best among the listed options, although ??? is not that far behind (or wouldn’t be, I still can’t find a mobile app, does anyone know one???). Good servers include Snikket, ejabberd and Prosody. It’s also the best fit for a small and/or private installation because it’s quite light (not lightweight like IRC, but still light), whereas Matrix is a nu-protocol and this quite hefty on resources, and honestly I have never seen benchmarks on what running a ??? service is like, not even for the official Docker container.
There are multiple good XMPP mobile apps for Android: https://joinjabber.org/docs/apps/
The story on iOS is somewhat less good right now, but Monal is ok and Movim works quite well as a PWA in Safari.










