Sniper Monkey

The futile quest for a Discord alternative

Apr 21, 2024
#software #discord-alternatives

Reviewing every texting app I know of in terms of future-proofing and features

Come with me on the fruitless journey of trying to find a good Discord replacement. Preferably free, open source and self-hostable.

Note: this post came out huge because I was being comprehensive, and there’s a lot of topics and apps to cover. I covered pretty much every chat platform I have heard of, so bear with me :)

The rationale

The reasons for moving away from Discord are several.

In short, my search for a Discord alternative stems from future-proofing, data privacy paranoia and annoyance with emoji limitations. There’s also the minor gripe of sound missing from screen sharing on Linux, an issue which has been around for years and nothing is being done about it.

This post on Reddit has a really cool comment that puts it well:

That’s the main thing about Discord. For now, it’s mostly free (as in free beer, NOT free speech); and there hasn’t been big breaches, scandals or issues (as far as I know). But it’s a fully hosted solution, where we user and community handlers have zero control and guarantees.

Tomorrow Discord can have advertisement, selling outrageous amount of telemetry, ask everyone to pay, or anything else. If you think that’s science-fiction, you’re too young to remember when Movable Type was the hot thing on the interweb and almost everyone used it “because it’s free”.

That’s what Teamspeak and Mumble have. Control is in our hands. Even more so with Mumble, because it’s open source.

Lastly, I do not plan on moving away from Discord yet; but if shit hits the fan, I want to have an overview on what to replace it with.

Challenges and criteria

I mostly use Discord for interacting with casual communities, which is the use-case I had in mind while evaluating the apps here.

The more I researched for this article, the more I realised how stupidly good Discord is on many fronts; not only features, but how much it offers for free, how accessible it is, and its availability on many platforms. As such, finding an alternative comes with a set of challenges:


Texting apps

Texting apps which are focused on direct messaging and group chats are a dime a dozen. Many tech journalists out there act like these apps are good enough to replace Discord. Well, they are not.

While not necessarily bad for what they are, texting apps aren’t in Discord’s ballpark. They tend to cater to a normie userbase, resulting in simplistic interfaces with a Fisher-price feel, basic features and limited customizability. A few examples are WhatsApp, Facebook Messenger and Signal (A+ for privacy but it’s very simple).

Feature-wise they tend to be very similar:

Telegram

(A screenshot of the Telegram desktop app)

Telegram is an exception to some of the trends I laid out above. It offers extensive customizability, recently started supporting multiple channels in group chats and offers good privacy:

All data is stored heavily encrypted and the encryption keys in each case are stored in several other data centers in different jurisdictions. This way local engineers or physical intruders cannot get access to user data.

PS. Telegram has some crazy stuff going on behind the scenes. It was made by Russians who are now moving the company around the world and the company itself “has a complex corporate structure of shell companies to delay complying with government subpoenas”.

Skype

Skype offers a weird hybrid of online chat and traditional phone features. It is the app everyone ran from back in the day and it seems to have stayed in that category.


Business-oriented apps

They tend to focus on integrating various development tools, log-in solutions and other things related to corporate administration.

Since they’re meant for companies, they come with a big price tag and require self-hosting. These apps are meant to be deployed by professional admins, which means most of them will be too hard to install and operate for a regular user.

A weird phenomenon I’ve noticed as I researched these apps was users complaining that the apps require premium plans for features which to me seem free when reading their websites. So take the feature lists with a grain of salt, as it might turn out that something basic requires premium.

All of this places the business-oriented apps (I will call them BOAs for short) as unlikely to be good Discord alternatives, but I include them to cover all bases. Quite interestingly, many user reviews tend to prefer Matrix (covered below) instead of these apps.

Note: Many of these apps integrate Jitsi instead of having their own video calls. It’s a free and open-source video conference platform which seems pretty good from my brief experience with it. It has most of the features of Discord video calls (even the reaction soundboard) and its servers can be self-hosted.

Mattermost

(A screenshot of Mattermost)

An app targeted to developers with a clean interface and a good feature set. Mattermost would be a great alternative if not for its steep monetization of the premium version without which you can only have 1-on-1 voice calls. This change was introduced recently and is a good example of how company-owned software can pull the rug from under your feet.

Slack

Widely used business app, but similarly to Mattermost it has a per-user payment plan. The lack of self-hosting eliminates the main advantage of using a BOA; if your data is gonna be hosted by a company, might as well just choose Guilded.

Rocket chat

A pretty strong contender, but still has all the licensing trappings related to being business-oriented. I’ve used it a bit and there’s something about the interface which doesn’t really do it for me. Apparently there was a big push for monetization which made the app annoying (someone even called it “nagware”).

Zulip

(A screenshot of Zulip)

Zulip uses a subscription-based channel approach; an organization (server) has hashtagged “streams”, where you discuss separate topics. Think of it as if you couldn’t talk in a Discord channel directly and had to always start threads instead; I think this design atomizes discussions and ironically seems to cause misorganisation, according to some reviews. Notably though, streams can be used like Discord’s categories instead, which should work pretty nicely.

The app also has a weird approach to draft messages (they disappear when you click away and appear in a separate drafts box). Another issue is that I have posted in the wrong thread several times because I didn’t highlight the thread I thought I was in.

Looking at various user reviews, people tend to prefer Zulip over the other BOAs. I’ve also seen its developers engage with the community, which is a great sign. Despite the issues I noticed, Zulip seems pretty good; If I was to pick one of the BOAs it would probably be this.

Google Workspace

Google Workspace offers a good set of collaboration tools which integrate well between each other. It is fully dedicated to business though and has no free option. Google Chat (a part of Workspace) can be used separately, but it only offers group chats.

Microsoft Teams

Soyware with annoying hiccups every few moments, which in classic Microsoft fashion has an unintuitive interface with features hidden in obscure places. The video chat is solid, but asides from that do yourself a favor and don’t bother with this thing.


Matrix

Matrix is an open communication protocol, designed for decentralized and federated communication.

An account can be registered on any server (which becomes your “homeserver”) and it can interact with any other Matrix server. Kind of like with email where you can register anywhere and still talk to others.

Matrix clients differ mostly with these features:

Note that registering on a free matrix instance gets you back into the good old “not owning your data” situation. Apparently some hosters can be heavy-handed with moderating - admins can delete your chat rooms and accounts without prior notice. Considering that the website above links to a few servers with questionable content, I take what they call “absurdly strict moderation” with a grain of salt, but it regardless goes to show that you should pick free servers carefully.

You might also hear that Matrix leaks metadata and whatnot, but these claims are probably exagerrated. As far as I can see from a document addressing those concerns, only the necessary data is shared between Matrix servers, and things like e-mails and phone numbers are only shared if you decide to add them to your profile. The document is from 2019, so these aspects of the protocol might have been improved further.

Last thing of note is that Matrix has several server implementations. The main one, Synapse, uses a lot of system resources to run. I’ve also had issues with deploying it on Docker, it’s less than straightforward. Another notable implementation is Dendrite, which should be more lightweight. I’m not sure if it’s easier to deploy though.

Element

(A screenshot of Element)

Element (previously Riot) is the most mature Matrix client app. This doesn’t necessarily mean it’s the best one though; I’ve heard it’s fairly bloated.

Cinny

(A screenshot of Cinny)

Cinny is a Matrix client with a more Discord-like interface which supports custom emojis using the yet-unimplemented spec proposal. Not sure if those will work with other instances. It also supports Spaces, but no voice/video calls (for the foreseeable future).

From what I gather this is a web client, so I’m not sure if/how well it works on mobile. I could not find any screenshots of the mobile layout.

FluffyChat

(A screenshot of FluffyChat)

FluffyChat is a client which supports both custom emojis and video calls, and has clients for every major platform.

Other

A list of other Matrix clients can be seen here. I will not be going over all of them, as I did not find any other interesting ones.


XMPP

XMPP is an open and federated text message protocol, similar in concept to Matrix. It’s often used for temporary messages (e.g. text chat in Jitsi calls) and push notifications. Notably, WhatsApp is a proprietary system based on XMPP.

While the core of the protocol is solid, extended functionalities (XEPs - XMPP extension protocols) are a mess. They are very atomized and most of them are stuck in the “experimental” stage. As a result, there’s a lot of feature disparity between clients (e.g. setting a profile pic worked fine between Movim and Gajim for me, but Converse.js did not register it), and no clients support all major platforms (except AstraChat, but it’s a company-owned phone messenger) so a web client might be the best option. If I understand correctly, there is a XEP for group voice calls, but none for custom emojis.

XMPP has no concept for “servers” (in the Discord sense): each chat room operates separately. So similarly to Matrix, “servers” would have to be awkwardly retrofitted into the protocol.

XMPP is more lightweight and secure than Matrix, so if you only need regular group chats, it is a great option. As far as I can tell there is no XMPP client which comes close to Discord, nor do I have hope of there ever being one; XMPP is pretty nieche (I saw even less discussion about it than with Matrix) and the protocol makes it hard.

Here’s two of the clients I tested. I also briefly tested Converse.js and I don’t get why it has the reputation of the most mature client, because it seems to have less features and interoperability than the other two I tried. I also wanted to try Monocle, but it’s just an instance of Movim.

Movim

Movim is a web client for XMPP which can be self-hosted. It’s pretty decent overall and it’s a shame it doesn’t support custom emojis or group calls, because it would be very solid otherwise.

Gajim

Gajim is a Windows/Linux client for XMPP which ads chatroom “workspaces” in its UI which resemble how Discord works, but the rooms are still separate. It has a custom emoji plugin, but I couldn’t get any plugins to work.


General and gaming-oriented apps

These are more likely to replace Discord than business apps, but tend to be different enough that they won’t be a perfect fit.

TeamSpeak

(A screenshot of TeamSpeak)

While great for voice chat and featuring some nice customization, TeamSpeak has an unfortunate approach to text chats.

Servers only have voice channels. These have an attached text chat, which is accessible only if you’re in the voice call. It is intended for sharing links and files during calls, and designed with privacy in mind; people who aren’t in the voice call can’t read it, and chat history gets deleted after the call.

Group text chats were recently added, but these are separate from servers and single-channeled.

TeamSpeak sadly won’t be a contender for Discord until it adds regular text channels to servers. Despite TeamSpeak memeing on Twitter about being an underdog to Discord, I unfortunately see no desire from their team to implement this feature.

Steam chat

(A screenshot of a Steam group chat)

Bet you didn’t expect this one, huh? Steam’s group chat feature offers a server-like experience now. It’s remarkably similar to Discord in the way it works, but much simpler.

Mumble

Mumble is a voice chat app similar to TeamSpeak, but it seems to have even less text chat capabilities; in fact as far as I can tell, it doesn’t have one at all. It is a free open-source alternative to TeamSpeak though, if you want one.

IRC

IRC is a classic but only uses plain text (no emojis, reactions etc.) and as a text chat protocol, has no voice chat by definition. Chat history is not saved, so if you’re not online when a conversation happens, you will not see it.


Discord clones

These might seem like the obvious pick at first, but can have the same privacy and future-proofing issues as Discord.

Guilded

(A screenshot of Guilded)

Guilded offers a ton of useful features, posing it as a good candidate for being a “Discord killer”. However, there are two issues:

These two factors don’t make me very optimistic for Guilded’s long-term viability.

I’m not sure I fully understand Guilded’s business model, but there seems to be no paywalled features; instead, users can buy subscriptions for servers, which grants them roles and other per-server benefits (e.g. channel access) which are configurable by the server owner. Guilded earns money by taking a fee from those subs. You can also buy a subscription (Guilded Gold) to fund development and get access to beta features early.

Moving onto the app itself though; Guilded works a bit differently than most of the apps listed here. What Discord calls servers are called groups in Guilded, and Guilded servers can have multiple groups:

Server 1
├── Group 1
│   └── (chats)
└── Group 2
    └── (chats)
Server 2
├── Group 3
│   └── (chats)
└── Group 4
    └── (chats)

It’s like another layer of organisation above Discord’s servers. To avoid confusion, I will be using Guilded’s terminology for the rest of this segment.

Also worth nothing is that similarly to Discord, Guilded sells anonymised user data.

The features I mentioned above include:

Overview:

Revolt chat

(A screenshot of Revolt)

On the surface, Revolt is a drop-in replacement for Discord that’s open source and abides by GPDR! There is more to it than meets the eye though.

I saw some rather concerning comments about the developer team, drama, whether the app is really open source and about the self-hosting under this article. I take them with a grain of salt, as they seem to come from disgruntled users, but they did lead me to some other interesting info.

From the FAQ:

The Revolt team currently consists mostly of students (18-20 years old), and the majority of the project organisation and work is being done by one person (Insert).

Considering the developers’ ages, this app is an impressive achievement, but at the same time the bulk of development being done by one person leaves me wondering about the longevity of the project. Glancing at the r/revoltchat subreddit also reveals that the app still has a lot of technical issues.

While not an issue in itself, an annoyance that I had was the lack of a feature list on the Revolt website, or in the developer docs. There’s also no information about self-hosting on their website, although after some Googling DuckDuckGoing (?) it can be found as a Docker deployment.

There’s some massively good news on other fronts though:

We have a variety of monetisation ideas lined up internally, with these, it is not my intention for us to paywall features and I find it unlikely we would ever do that considering it would contradict what we’re trying to achieve.

And in their privacy policy:

We will NEVER sell your data to any third-parties.

I really hope this project succeeds and learning about it made me appreciate the insane amount of work that goes into making such an app; however, I’m not entirely sure how usable it is at the moment.

Spacebar chat

Previously known as Fosscord, Spacebar is a free and open source Discord clone that’s compatible with existing Discord bots.

It is still early in development and not really in a usable state, but is posing up to be an interesting option. In fact it’s so early in development that I could not find a screnshot of the app, although the website offers a login form. My first impression of it was better than of Revolt, as it’s very transparent about what it is and isn’t.


Conclusions

First, honorable mentions:

Steam chat is my current backup for contact with online friends, but due to its simplicity it will likely stay just a back-up. (Sidenote: it’s pretty funny how Steam tries to make itself a social platform but its userbase keeps being immune to it)

Guilded - feature-wise it fits like a glove and even surpasses Discord, but when it comes to my other goals it is not looking good; It’s not future-proof and has mediocre privacy (reminder that Guilded sells your data). With its accessibility and features, it is the most likely app to be adapted by regular users (non-techies). If you are looking for an alternative and things like privacy and self-hosting are not of interest to you, Guilded kills the competition on all fronts.

Carrying on;

As this great post on Reddit points out, the fundamental issue with apps like Revolt, Guilded and so on is that they are not based on an open protocol; the moment they do something unpopular, you’re looking for an alternative once again.

In light of that, the idealist in me says that Matrix is the future. However, the way it’s designed (namely, group chats being first citizens) is kind of questionable to me. My attempts at deploying a server did not give me a good first impression about the self-hosting, and joining an existing instance can be risky as I’ve mentioned before. I guess I could try another server implementation. Another issue is the client selection and what features they offer. I was almost ready to write Matrix off because I could not find a client which supported both custom emoji and voice calls. Thankfully there’s FluffyChat, although I’m not a fan of its phone messenger layout; I prefer how Cinny looks, but it has no voice calls and no mobile app.

XMPP has similar upsides and downsides as Matrix, but it’s obscure and messy. The client selection is not great either, with none of them supporting both calls and custom emojis.

Asides from Matrix and XMPP, TeamSpeak is the only app that’s both self-hostable and allows instances to interact. It is also the only app with a hassle-free server deployment. For those reasons, I really want to use it; The pretty nice “feel” and the app’s longevity make me pretty partial to it. However, the lack of proper text channels beyond group chats is something I cannot gloss over. For now, I can only cross my thumbs that the TS devs will implement those someday.

Revolt - while it offers self-hosting (non-federated, sadly), the data policies and monetization plans make using their centralized service very acceptable. At the same time, these things are not set in stone, so Matrix still has an upper hand here. Regardless, the app is not very mature yet and the lack of voice calls is a major drawback (not sure why they haven’t just integrated Jitsi). I will definitely be watching Revolt’s development though, as it has big potential, and I would be willing to use it in the future.

This leaves us with… Zulip? As things are, it has remarkably few drawbacks; I’d be willing to give it a shot, but the corporate feel (e.g. server = organization) is kinda meh. Definitely the least greedy BOA… although you can never know how long this will last.

So… what’s the verdict? I don’t think I can decisively make one, not while every good alternative has some glaring flaw.

FluffyChat was a last minute find that saves this blog post from having no clear answer; it is pretty much the best future-proof and sovereign alternative to Discord I found. Unfortunately I say that a bit begrudgingly, because its phone messenger feel puts me off.

For those reasons I will be watching for any developments with Cinny, TeamSpeak and Revolt.

In the meanwhile, I will probably try deploying a Matrix server again and getting some hands-on experience with FluffyChat; we’ll see how that goes.