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.
disroot also offers xmpp service.
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 don’t know much about XMPP but when I briefly looked at it there seemed to only be a focus on mobile platform and not much offering on desktop. Can I ask if you have considered Matrix?
XMPP is an open protocol, meaning that it can be integrated in any app you build around it, which also means that it can only be as good as the app turns out to be. The great strength of XMPP lies in its flexibility, so naturally there is a whole bunch of apps to choose from, also for desktop, like Adium or Pidgin
Adium or Pidgin
These are not generally good recommendations for XMPP desktop clients these days. Both have have experienced slow/inactive development in recent years, and don’t support modern XMPP features such as end-to-end encryption and multi-device synchronization. Pidgin is showing interest in catching up again, but I’ve no idea about plans for Adium’s future.
Good clients to recommend these days: Gajim or Dino (both Linux / Windows) or Beagle (MacOS). There are also web clients such as Movim.
I am not opposed to matrix. But the support for encryption in non-electron client seems like it’s not there yet. It seems harder and more resource intensive to self host than xmpp. Plus it has been getting very friendly with corporations lately so it makes me unsure about it’s future. And it has way more features than I want.
If XMPP doesn’t fit the bill for me I am down to use a publicly hosted matrix instance.
For an e2ee capable matrix client that doesn’t use electron, look at nheko. I have recently switched, and it is fantastic. You will need element temporarily to bootstrap keys, but after that, nheko will be able to do everything for you!
Well, Nheko is behind Element in many aspects, and it seems to me it’ll ever be, Nheko is not a business backed project, as Element is, and Element is considered the “golden model”, even though it’s a just an electron app on the desktop, and not only that, new Matrix features seem 1st get into Elment due to that, and the community clients, not the business back apps, have to see how to catch up.
On the other side, depending on the kind of chats, you won’t be able to see the sort of markdown formatting supported on Matrix chat, rendered, so for that kind of stuff (quoting, adding code snapshots whether inline or paragraphs) you better use Element. I ended up using both, though I prefer Nheko by not being an Electron app. Also, I noticed with Element, no matter the history of encrypted chats, when you 1st login to an encrypted chat, syncing from another device of your same account, you get all previous messages in the chat. However when you 1st login with Nheko, it can’t decrypt previous messages, and you will only sync further ones. That is not by itself a bad thing, but if you were counting on syncing from your own devices the whole chat history, you’ll get surprised with Nheko. Nheko is still my default client though, given my aforementioned preference to avoid using Electron apps.
I wasn’t able to retrieve the keys the last time around. Will try it again.
Ya try nheko again, key exchange should be working.
The key with Nheko probably is: the latest release is from April. AFAIK they are planning a new release after e2e is “finished”, but I guess final 10% is the toughest one…
In other words, one might need to use the nightly builds to get better experience.
I manually exported and imported the keys and it worked fine after that. So I don’t have to use element anymore.
Nice. I think I did do that once a while back too, so maybe key exchange isn’t working properly.
That is a bit ironic, because XMPP has for the most of its 20 years existence been only on desktop, and one of the reasons Matrix was started was to offer better mobile support.
But I agree in so far as that in the last few years the focus has been on mobile support, and these days XMPP is definitely top notch on Android (and soonish also on iOS), while most desktop clients have not been maintained very well. But the upcoming 1.4 release of Gajim looks very promising with its basically Discord like new UI and for Windows UWXP is also very nice.
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.
We have a XMPP community here by the way: https://lemmy.ml/c/xmpp
XMPP is the best solution I’ve found overall, and I’ve tried everything.