xmpp for the first time


XMPP/instant-messaging is the best thing you’ll ever self host. You don’t even need to self host it. There are plenty of public instances to join. I used lightwitch.org. I think the people who run it are pivoting to matrix. If you’re interested in registering an account here is a list of providers:https://providers.xmpp.net/.

XMPP was the first thing I’ve self hosted and I’m glad I did. It looks and feels like normal text messages, phone calls and video calls but you have many improvements. Its like the people who designed the xmpp protocol studied what worked and didnt work in email and the phone system before hand. Phone numbers are a scarce resource. Plus you lose them when you lose your phone. Not to mention that they only work on one device. With xmpp theres no risk of losing your account. You can make as many accounts as you want for free. Plus you get to text/call to/from all your devices. You have to set a couple things on the server for everything tp sync up, but its a trivial task.

xmpp has many different clients and servers available. They’re contantly improving and adding new features. Conversations is the android app. Its what i use most and it works great. I also like to call from my desktop, I use a program called Dino for that.

When I first setup the prosody, the xmpp server, I had a hell of a time. I had never set dns records before. Nor had I ever installed tls certificates. I even registered a domain name for the first time. The way I tackled the problem was by starting out in a virtual machine, trying to get it to work unencrypted with ip addresses instead of a domain name. The issue with this is that most modern xmpp clients require a more secure form of authenitication. I got around this by using an older client. I still had to deal with constant pop up warnings and I had to set things in the advanced settings. There was also no information on how to do this online. I figured it out, it made the prosody configuration feel pretty easy so I could focus on the other steps.

I usually try to take the approach of doing a simpler version of a thing. Then adding in more and more until I have something sufficient. The problem with most guides online is that they tell you how to do very complicated things. Often involving a ton of different technology, each of which is itself complicated.

With an xmpp server there are many additional servers which aren’t strictly necessary that are recommended. These addition services are things like a turn server, and a file sharing proxy. Their purpose is to get you around NAT, network address translation. If you can use IPv6, there will be no need for these additions. However the android maintainers at google have neglected their ipv6 support. Meaning it will be buggy to only have ipv6 on android and you will eventually need these addon servers and an A record.