Can you guys suggest some reliable and secure selfhosted IM service? I’m kinda in a very bad spot right now, so any centralized messaging wouldn’t really work. And yeah, state sponsored mass surveillance is a question of concern. Sorry for odd phrasing, just really at a loss.
I heard of matrix, XMPP (heard good things about snikket.org), SimpleX and even some IRC wizardry over TOR. And I actually tried matrix (synapse server), but found it not reliable enough - sometimes skips a notification, periodic troubles with logging in, weird lack of voice calls on mobile client, and some other irritating, tiny hiccups. I’m open to any suggestion, really, even open to trying matrix once again. Just, please, describe why you think one option is better than the other.
And just FYI, use case is simply texting with friends and family, while avoiding state monitoring. Nothing nefarious


Prosody (XMPP server). Setup takes an hour at most even if you have never worked with Lua. Easy to interact with (it has a built-in shell), easy on system resources, and easy-to-understand config. Support for groups, E2EE, attachments including videos and voice recordings, among others.
Thanks, will check it out. If it’s not too bothersome, could you specify why XMPP would be a better choice than other options? The protocol itself, I mean. There’s a lot of contradicting info on each of the protocols. Some say XMPP is ancient, choose matrix. Others say matrix is a complicated mess, choose more mature XMPP
As someone who’s tried both, it depends on what you want. Your choice of Matrix server depend on any political and ethical values – some say Synapse is too corporate, being maintained by Element who are for-profit and obtain funding from corps and governments, so some prefer others such as Conduit ( – until maintaining slowed to near abandonment and it was superseded by Conduwuit – until the owner got cyberbullied so hard she quit the project and it was superseded by Continuwuity) because it was built on Rust and much more efficient than Synapse, or Dendrite. I recommend Continuwuity.
Then there’s clients – the only mature matrix client for mobiles is Element, and there are two apps, Classic and X, who offer different pros and cons, and imo are not good enough on their own, both are in a kind of beta stasis. But it’s the best they have. If you really don’t need calling, then Element X, FluffyChat or Schildichat is your app and Element Web for desktop access (available on Github). However, when exchanging encryption keys to trust another of your devices, or a contact’s device, only Element offers simple QR scanning.
In short, Matrix is very good as a privacy-focused server with partially working, modern looking clients.
Then there is XMPP. Again there are different backends to choose from and I am inclined to recommend Prosody. XMPP just works out of the box for me, calling included, and is relatively stable. However, there are large caveats – several pieces of user data are stored unencrypted on the server, which is fine for you as the owner, but it’s a lot harder for someone else using your service to trust that. And, while XMPP uses OMEMO encryption keys, handshaking with devices is far more manual than Matrix’s Olm/Megolm and involves a multi-step process, and migrating to a new device is a pain because messages are not backwards decrypted, so they must be transferred from the first device. Finally, clients are very rough. The best desktop clients such as Gajim and Pidgin still look like they were built in 2001, and while mobiles have Monocles, Cheogram and Conversations, they all look very similar, as the former are very slight modifications of Conversations.
In short, XMPP may lack some comforts of modern messengers, but it is simpler to set up than Matrix, and offers many of the same features. However, the manual key sharing process might scare off all but the most avid privacy enthusiasts, especially that if you migrate to a new device without sharing message history from a previous verified device, messages are lost.
Choose Matrix for polished software, inviting many contacts, and, with Element X featuring (eventually) Element Call, complete E2EE.
Choose ol’ faithful XMPP for an easier initial setup, if video calls are important, you appreciate that historical messages cannot, by design, be hacked into, or if you don’t like Element the company.
I too have heard good things about SimpleX and Signal, and recommend trying them if they are valid contenders for your use case. Signal really is the best (most private, least data-farming) non-selfhosted option.
XMPP is ancient. So is email, the internet, and the wheel.
or snikket, the docker version of this with some things pre configuration-tated