Every Messaging Service Sucks
This was inspired by a similar article from DenshiVideo
What makes a good messaging service?
Well it's kinda subjective, but in my opinion, a good messaging service meets at least some (but ideally all) of these criteria:
- It should be Free Software (Free as in Freedom)
- It shouldn't require personally-identifiable information to register
- It should be decentralised & federated (meaning communication doesn't depend on a particular server or company)
- It should have end-to-end encryption
- It should respect your privacy (no mandated telemetry and it should be opt in rather than opt out)
- It should have people using it (these apps are pointless if you have nobody to talk to)
Why each tool sucks
Obviously, I can't talk about every program/protocol because there are way too many, so here are just a handful.
- WhatsApp is proprietary
- It requires a phone number for registration, despite operating entirely over the Internet
- It's owned by Meta (Facebook)...no thanks
- Although WhatsApp claims to be end-to-end encrypted, there's no way to actually verify this due to WhatsApp being proprietary and users not having the option to manage their encryption keys
- WhatsApp is centralised
- Phone must be online to send/receive messages
Discord
- Discord is proprietary
- An email address is required for registration, plus it's not uncommon for Discord to require phone verification too
- Discord tracks its users with telemetry
- Discord is centralised
- Discord's ToS prohibits stupid things like using third-party clients
- Discord's Moderation and Customer Support is a complete joke, you can literally get banned for no reason
- Using Discord with a VPN or over Tor is basically a no-go
"Pseudo-WhatsApps" (Telegram & Signal)
I call these "pseudo-WhatsApps" because they can be good substitutes for people who are used to WhatsApp due to being simple to use and fairly popular, but unfortunately they still have some problems:
- Only the client is FOSS, the server-side is still proprietary
- Phone number required for registration
- Still centralised
- Phone must be online to send/receive messages
Revolt.Chat
Revolt is essentially a FOSS version of Discord, and although it's a cool piece of software (no nitro, much more customisation than Discord, more language options, larger file size limit), it still has some problems:
- Although Revolt can be self-hosted (meaning it's technically decentralised), it isn't federated so most people are limited to the default server
- Email required for registration (even if you self-host)
- Still bound by a universal ToS/Community Guidelines
- No video calls
Rocket Chat
Rocket Chat has a lot of the same problems as Revolt, except it's not really a Discord alternative, it's targeted towards business use so it's more like an alternative to Slack or Microsoft Teams.
Matrix
Although I like Matrix, there are some things that hold it back (besides a lack of popularity):
- Matrix is both decentralised & federated, but in practice a lot of people just use the default matrix.org homeserver
- Clients can vary a lot in functionality (e.g., only a handful of Matrix Clients allow calls in some capacity)
- Not very normie friendly
Other solutions?
XMPP
The XMPP protocol is already used for some modern messengers and for chat functionality in some games (e.g., WhatsApp and Kik, although they disable federation which limits communication to people using those apps).
Calls with XMPP are very finicky (even if the client supports calls, the server needs to be running a TURN server), but purely from a messaging perspective, XMPP is great! You can send encrypted and non-encrypted messages within the same chat, and the server software (prosody, ejabberd) generally isn't as bloated/complex as Matrix Synapse. And in my opinion, XMPP clients are much better than their Matrix equivalents.
Mumble
Mumble itself isn't an instant messenger (it's a VoIP program similar to Teamspeak), but it's a great tool that can be used in combination with IMs that lack any good VC options.
It has no registration, the client is lightweight, the server is easy to install, and it's completely decentralised. It also has features like push-to-talk.
Email??
Although email obviously lacks the features of an instant messenger (it's not instant, no group chats, no call functionality) and it has problems (e.g., spam). It's good in the sense that it's a universal and decentralised standard.
It's universal because everyone on the internet has an email address, and it's decentralised due to the variety of email providers (in fact, tools like Luke Smith's emailwiz script make it very easy to set up your own mail server).
That said, Email is generally not a secure way of communicating. It's possible to end-to-end encrypt emails, but it's complicated.