I want to stop using WhatsApp because I fuckin hate it. Does anyone use XMPP regularly? It allows encryption so I was considering it.
The consideration is whether I will have to self host it or I can use some publicly hosted instances (like how there are open Matrix instances). Also whether it has support for desktop clients that run natively on Loonix without electron.
Please share your thoughts if you have experience. Feel free to suggest other alternatives too. I won’t mind that.
I use it for daily communication with my friends and family and think it’s one of the best choices for IM.
There are a lot of public servers, but - as with every non-centralised protocol - choosing the right one might be tricky. This list provides a good starting point imho: https://list.jabber.at/ Also you might want to check, that your choosen server is fully compliant with the current xmpp standards, which can be done at https://compliance.conversations.im/
Last but not least, if you want to have a look at self-hosting, there is this fairly new project called snikket (https://snikket.org/) which aims to make xmpp hosting easier (and also the whole xmpp usage a bit more consistent for “normal” users by rebranding the protocol and it’s apps under a single name), but uses a standard xmpp server in the background.
As for the clients, I use dino (https://dino.im) and gajim (https://gajim.org) on my Linux desktop and Conversations on Android.
Do you self host?
I self-host a Prosody server, which is the project Snikket builds on. You have some specific questions?
Yeah a couple if you don’t mind.
- Is it resource intensive for a small number of users? Mainly want to use it with my family members. I have a bottom tier VPS so I am wondering if I need to get a better.
- Is it tricky getting it to comply 100% with the standards expected by compliance.conversations.im ?
- How much effort does it take to maintain it?
- not at all, a small xmpp server is barely noticeable on server resources. Prosody alone should use less then 50mb RAM in your proposed usage scenario.
- Yes, somewhat tricky but 100% compliance is not needed and Snikket really helps with getting it running well. Edit: my server has something like 95% compliance and works fine. There are a few things in the last 5% that are more tricky or undesirable (like open in-band registration).
- Depends. There is a official debian/ubuntu repository for Prosody, so basic functionality would just update with everything else on your system. Snikket provides official Docker images, so that is also fairly easy to maintain.
I’m also running prosody and can confirm everything you said. Prosody is surprisingly lean and snappy. I remember being concerned about getting prosody to be compliant (after coming from ejabberd, which has everything built-in), but it was very straightforward. I don’t know if that last 5% compliance is worth it for a self-hosted server. I think an invitations-based system works best for in-band registration, but as far as I know that won’t satisfy the requirement of being “open.”
Have a look at this article which compares some resource use. For small instances Prosody uses even less resources then ejabberd, but ejabberd scales better for larger servers.
I would say give it a go. There are good clients for desktop and mobile, and even Siskin on iOS is usable enough that I have onboarded friends and family with it. There are tons of servers to choose from if you don’t want to self host (which is orders of magnitude simpler and less resource intensive than Matrix). XMPP also has some other neat aspects to it, like pubsub and pep, which things like Movim build upon to make a truly decentralized and nomadic social networking platform. I also like that I can use it for sms and sip through jmp.chat :)
Also, since you mentioned encryption, OMEMO encryption on XMPP is way easier to use than Matrix IMHO. The only time it can be tricky is in group chats with a mismatch of clients. But for everyday chatting with family and friends, I never have to think about it and never have to worry about explaining to someone how to sync their keys between clients etc. The main clients people use nowadays handle it really well.