Do you remember the time before WhatsApp? I do! I was a quite shy guy but I did have my conversations and most of them went through a tool Gmail used to have not long ago: Google Talk. It was really good. I talked to my girlfriend with it. I talked to my classmates and coordinated several school reports with it. If you had a lot of conversations with it you probably used Pidgin or a similar application which could join together Facebook IM, AOL (if you still used it), MSN and of course Google Talk. It turned out that it (XMPP aka Jabber) was a standard protocol so everyone implemented it in a proprietary basis but you could run it on your own if you had a system where you could host it.
Fast forward to 2021 the distrust to GAFAMT (Google, Amazon, Facebook, Apple, Microsoft and Twitter) and the popularity of VPS and application self-hosting has made a lot of people to think of getting away and taking their data away from these giants. The advent of the new Terms and Conditions of WhatsApp that enable them to take our metadata and share it with Facebook has made users to change their behavior and seek new horizons. So far the solution people in social media have found is to move to Signal or Telegram (mostly to Telegram). However, these companies follow a similar model with the difference that they just gather less metadata. Telegram doesn’t even cipher messages e2e unless you’re on a secret chat. Signal doesn’t get a lot of metadata but what they get is your phone number which for many people is a more than a bit uncomfortable to share with others.
XMPP (or Jabber) is very easy to run and doesn’t require you to give away your phone number if you don’t want to. The most important thing though, is that you can run it on your own server or use the server of someone you trust and still connect to other people in other servers (waht’s usually called “federation”). Also, you can encrypt your conversations with other people by using the OMEMO protocol.
This is not a tutorial because deployment depends a lot on the exact operating system but there are guides everywhere about installing ejabberd or installing prosody on a server you know. “Server” sounds like such a big word but it’s just a computer, even a NAS or a Raspberry Pi count. The only thing you need to know is how to use the shell and install/set up stuff with it. Also, you do need a domain. A personal domain you’re already using would be fine.
We did this at texto-plano.xyz. I as the sysadmin of texto-plano installed prosody using this OpenBSD guide and it worked amazingly well. Still, I thought no one would care about my experiment but users loved it because it’s a bit more flexible than IRC and more suitable for 1 to 1 conversation. Not to mention end-to-end encryption. You might as well install it for yourself and your personal domain or for your family or a small group of friends.
Some people think “hey but why doing that if not everybody is gonna change and I’m gonna have to keep whatsapp on my phone”. What I have to say about that is yes, if you have to talk to a lot of people not willing to change, then yes you will have to keep it but if you start using XMPP then it’s less of your conversations that are in the hands of private companies or in centralized systems that you don’t control. It’s a matter of half full or half empty glass of water kind of reasoning. Why someone should have the right to know who you talk to or when or where you talk with others or what’s your phone number is.
If you were thinking already about it and you have the minimum technical knowledge you can definitely do it. Also, from experience you don’t need a huge server to do this, even if you have lots of friends because both ejabberd and prosody are very lightweight.
What about clients? There are clients for all operating systems and devices including phones. I’m using Blabber.im for my Android phone and Gajim for the computer (available for Windows and Linux). The only thing I haven’t seen yet are stickers and that’s because I haven’t done more research. You don’t only text users but also you can share files over the internet with a friend (which you probably should remember from Google Talk days) and some people even share files within (encrypted or not) chat groups (this need a little bit of fiddling).
So why not? I don’t know if you are considering it now, but it’s definitely a valid option.