Given the current state of messaging/chatting over the Internet, the popular options are WhatsApp, Facebook Messenger, Telegram and so on. All these are owned by corporations and pretty much black boxes. Apps like Signal and Keybase are also available that primarily advertise privacy and encryption. They are also partially open-source. However, they lack one important aspect that I will come to shortly. Since all these are pretty-much well-known alternatives, let me cover a couple of others briefly.
Around 2011, I came across IRC where lots of open-source developers hang out on "channels". It is their Slack. These channels are open to public where you can join and ask around your questions (in a smart way, though) and talk directly to developers. I found this accessibility really cool and started to hang out on few channels. However the problem with IRC is that once you lose connectivity even for a short time, you are disconnected from server and you lose messages during that time. So it is kind of stateless. I wondered why there isn't something that is more like Yahoo! Messenger (Remember?), but didn't dig into it much. Shortly after having an Android phone, I installed an IRC client on it and used it a few times to chat while on the go. But that much was as far as my interaction with IRC.
Sometime in early 2019, I came across disroot.org as an alternative to few Google services and while browsing the services they offered, I saw XMPP as one of the services. I tried it and found that it was what I was looking for in an IRC alternative years ago as XMPP stores messages on server when you are not logged in. I browsed couple of XMPP servers and group chats (or MUCs - Multi User Chats in XMPP parlance) but found majority of them either Russian or other Europian languages, so was kind of put off. XMPP, however, is an old protocol and Google Talk used XMPP too, although, it dropped support for it and went onto a different path.
Fast forward to couple of months back, when I started setting up this server I was looking for things that people host on their own. And there I found XMPP server! I will cover the details of that part in another post, but since then I became a regular user of XMPP. Using the profile I created on my server, I joined few group chats (MUCs) and made few friends with whom I often chat 1:1.
With the experience of using different messaging platforms and hosting own XMPP server, I have few preferences for an Internet messaging solution.
All in all, after using XMPP for couple of months, I have realized that it has everything that can be expected from a modern Internet messaging solution. You can log in simultaneously from multiple devices from your mobile as well as computers, you can send images, videos, files, etc., emoji support (yay!) and just one XMPP account allows you to talk to any other user and group on any XMPP server! I am hopeful that more and more people will use it.