First thoughts on XMPP from someone who has no idea what he's doing

2021-04-10


So, thanks to Signal's recent venture with a random cryptocurrency, which I really don't want to get involved with, I decided to set up an XMPP server for me and my family.


Why XMPP? Well, I wanted to try it out, and a lot of people were mentioning it as an alternative.

Do I regret it? No! (Or at least, not just yet)


The server setup


I used Prosody as my server of choice, mostly because I heard about it in passing every now and then and the name seems to have stuck on me.


It was packaged on Alpine's repos, so a simple "apk add" and done! It was time to configure it!


Now, I just blindly dove into Prosody's docs, only taking a few peeks at other guides on some random parts, but after a couple hours, I managed to get something up and running, which got around 60% on Conversations' compliance tester.


Prosody
Conversations' compliance tester

Just a few hours ago, I got the server to 90%, with the only missing pieces being TURN/STUN, which I am not entirely sure if I need just yet. And it was pretty darn easy to do so! Thanks, Prosody!


The server resource usage


It's pretty darn light! Even lighter than my instance of Gitea so far, which seems to have a memory leak or something because it's eating ~400MBs of RAM. Prosody? 15MB.


Fifteen. Megabytes.


If you're coming from Matrix and Synapse (which was my previous selfhosted chat adventure), this is LIGHT!


User experience for your parents


My main use for Signal was to talk with my parents, and if they can't use XMPP, I have no use for it either. So it was nice to see that, with some guidance on the registration process, they had no problems setting it up!


I told them to install the Blabber.im fork of Conversations on the Play Store, as they don't have F-Droid and I don't expect them to pay for it on the Play Store any time soon.


Blabber.im

The UI is similar, not the same, but not totally different either, which helps for troubleshooting.


The Turkish translation (my native language) is missing in some small areas, which I plan to improve if executive dysfunction doesn't get the best of me, but it's pretty well so far.


Registration


Because my server doesn't have registrations enabled, I couldn't just tell them to "go register". Instead, I created accounts with temporary passwords and showed them how to change them. This part was a bit handholdy, but I managed to do it over Signal without being face-to-face, so it must've been "friendly" enough that they didn't just tell me to just "do it myself".


Since this is supposed to be done only once, I don't think this is that big of a deal for my use case.


Usage


The day to day usage seems to be fine. They don't seem to have any problems with messaging me over XMPP.


Messaging them on the other hand was a bit of an hassle initially, as they use Huawei phones, and the horrendous battery saving features mean that the phone kills background apps left right and center, which causes issues with notifications and has to be turned off manually, and even then I am not entirely sure if notifications work for them a hundred percent. (AFAIK Blabber doesn't use FCM, which means it must check for messages manually)


Aside from notifications, it works well! Uploading images and text messages work, both of which are the most common things we do.


I haven't tried voice calls, and I suspect they won't work because I don't have STUN/TURN set up just yet, but we mostly use regular phone calls, so that's not that big of a deal.


Everything is OMEMO encrypted, which is barely noticeable aside from maybe a few multi-client papercuts regarding uploads, but only I do multi-client (phone and computer) so I think I can live with that.


Finale, and a question


So, in short, XMPP is good enough for my use cases, with a few papercuts that can probably be solved with some effort from client and server devs, and I hope I will be able to remove Signal from my phone in a week or so!


My XMPP migration is not done just yet. I still have to find an iPhone client for a relative, and as I don't have any Apple stuff on hand, I don't know how the clients work there.


So, if anyone here knows of a good iPhone XMPP client for someone who isn't a tech person and has better things to do than deal with clunky software, or if anyone here is an XMPP guru who can tell me any issues I should expect when using XMPP day to day: Do reach out! My contact information is on this site's homepage.


🐺 · CC BY-SA 4.0 · me@ecmelberk.com