Primates have a tendency to be social animals: they live in a herd and need to communicate frequently with its members to cohordinate their activities but also to maintain the social ties that keep the group together. Since a long time, human herds have developed technological tools that helped them to spread out their herds geographically by enabling remote communications with fellow human beings, which in turn has lead to a higher need of tools for remote communication. With the speed of modern technlogical advancements and aided by the natural lifecycle of standards, this has led to the proliferation of chat systems famously illustrated by xkcd_ .. _xkcd: https://xkcd.com/1810/ This situation is far from optimal: most of the tools listed on that comic do not interoperate with each other, so everybody needs to be on a few systems, each one of them requiring a different client, in order to communicate with his family and friends. This lack of interoperability comes by design, as these services are usually provided for free and need to collect and keep as many users as possible in order to benefit from the network effect and to maximise the commercial value of their data. For us users, however, it would be nice if there was a chat system that was designed for interoperability, with the ability to use different servers and different clients (on multiple devices) according to the user's need, and the ability not to be locked on a single provider but to be able to talk with users of any one provider. The good news is that there are actually a few such systems (of course), but today I want to talk about one in particular that is also an established, open standard designed for interoperability and extensibility: XMPP_. .. _XMPP: xmpp.org Born as Jabber in 1999 with the aim to solve a situation not very dissimilar from the one of today, XMPP had a first wave of success in the first decade of 2000 when it was adopted by a number of big players including Google Talk and partially Facebook Chat. So, why isn't everybody using XMPP today? One factor that helped is that once gtalk had reached a significant user base, the ability to federate, i.e. to communicate with accounts on other servers was no longer useful to google, but actually harmful, as it didn't help them to gain new users. While they took quite some years to disable it completely, for a long time Google has been reducing its usefulness by adding gtalk-only features such as group and video chats. Since they were such a big player, this also helped spread a feeling that XMPP was an abandoned protocol, no longer suitable to the current needs. This was however far from being the truth: XEPs (XMPP Extension Protocols) continued to be published to address new needs as they manifested, and nowadays XMPP has all of the features commonly available in other, more recent systems. It is true that lately quite some innovation in chat has been done in other, non federating, systems, and having control of all servers and clients of course allows to deploy such innovation faster, but XMPP wasn't far behind, and often managed to have similar features after a few months, while still keeping the ability to communicate between widely different servers and clients, according to the capabilities of all parties involved. What this means is that XMPP with the right client/server combination has all of the features required nowadays by a chat system, including the ability to connect to it from different devices, both at the same time and alternatively, while keeping a complete conversation history on all of them, good battery life on mobile, various levels of cryptography (also for group chats), and of course great smileys and the ability to send cat pictures that also works on the text-only clients used by a few maniacal users such as me. The availability of multiple clients can cause some confusion for less experienced users, but here my recomendation is to ask your friends for what they are using, or just use gajim_ on the desktop (Linux and Windows) and conversations.im_ on Android, unless you enjoy spending time trying different clients until you've found one that perfectly matches your needs. .. _gajim: https://gakim.org .. _conversations.im: https://conversations.im As for the servers there is a list of public ones at https://list.jabber.at (and the security features of those servers can be tested on https://xmpp.net/ ), and the people behind the conversations.im client also provide accounts for 8 EUR / year on https://account.conversations.im where you can expect them to keep the server up to date with the latest extensions required on mobile. My recomendation, however, is to self-host, or rather to find a group of people that trust each other, ideally one that includes a sacrificial nerd and share the expense and work needed to self host among them. This has been my choice, and I'm using a cheap, entry level VPS (for which I pay about 5 EUR / month including the domain registration) which has plenty of resources for the current dozen of users — and could easily host another dozen and/or other services (maybe a federated social network instance?). As for the effort required on my part to maintain it, it took me about a day to set up everything, starting from the VPS creation and including an afternoon spent reading up on every extension suggested by conversations.im in order to decide whether I wanted to enable it (but I've documented_ this part, so that you can just use my tutorial and save time), plus 10 minutes every other week doing regular mainteinance including keeping the system up to date (and rebooting the server for security kernel upgrades). For this I've used prosody_, as it was recommended as easy to set up and maintain, but I've also heard good things about ejabberd_, which should be a bit more versatile in case of bigger deployments. .. _documented: https://www.trueelena.org/computers/howto/modern_xmpp_server.html .. _prosody: https://prosody.im/ .. _ejabberd: https://www.ejabberd.im/ This is in my opinion a sustainable effort in order to have a server that is managed by someone that has no incentive to sell user data, both because it's too small to have any value and because all of the users know where the server admin live (and vice-versa) and every incentive to keep the server in good shape because they are using it themselves. Of course, thanks to federation, that dozen of users can talk to people on all other federated servers around the world, which is the main reason that makes this model of small, trustable, servers feasible and in my opinion makes XMPP the best chat choice from the point of view of its users.