I've been self-hosting ejabberd for a few years now, mostly as a private chat setup among a group of volunteers and friends. We all use the Conversations app on Android, and it's been super reliable for day-to-day stuff. But last summer, things got real.
We had a series of wildfires tear through our area, and I volunteer with the local fire department. Cell service was spotty at best, and commercial messaging apps were choking with delays or outright failing. Thankfully, I had already set up a few meshnet nodes across the valley using Yggdrasil, and I’d routed our XMPP instance through them just as a kind of “just in case” experiment. Well… that experiment paid off.
We were able to keep in touch across multiple teams, even deep in the forest where normal connectivity was a joke. Conversations handled everything smoothly—offline message queuing, fast reconnects, and the battery usage wasn’t bad either. Even file transfers and location pings worked when we needed them. Messages went through when nothing else did.
The crazy part? We didn’t have to change anything. No new apps. No reconfiguring servers. Just a resilient protocol doing what it was built to do, over an ad-hoc network that would’ve made 90s sysadmins weep.
If anyone's ever wondered if XMPP is “too old” or “not modern enough,” I can assure you—when things fall apart, it’s exactly what you want in your toolkit.
Stay safe out there.
—M