pancake

Leaving Discord

Intro

Just as a lot of others, I have been looking for a self-hostable alternative to Discord.

I have been using it since early 2020, and I have made a lot of friends there, but the direction of the platform has been worrying me for some time, and with the latest news about age verification and teen-by-default, I realized it is not the type of network to keep me forever.

Alopex Networks recently published a Ditching Discord post on their search for an alternative, which is the same exact situation I am in. The same goes for James Liu's In Search of a Discord Replacement.

My needs

I love digital sovereignty is finally discussed in public.

To me, having all my chat data stored in a US datacenter is better than Asia, but given the reality of the 2020s I would prefer all my personal chats were stored in a country I see no risk of pronouncing Europe a threat. I have a confidence in most of the VPS providers in Europe, but I already own hardware I physically control.

This is the wish list I am basing my search on:

Nice to haves:


Direct Experience

Over the last month or so, I have been looking around and trying stuff out. Most of it did not work, some did but I did not feel comfortable using as a to-go platform to replace Discord with.

IRC

I did not grow up with IRC and it feels obscure to me, and I have decided to not pursue it for user experience and deployment experience reasons.

Hosting IRC by-itself is easy, both ngircd and Soju felt rock solid, with easy to understand ways to deploy it. The Goguma Android client looks very nice.

I never got history working reliably enough to be confident it would work across the clients. Especially in Linux desktop apps the support for the history extension seems insufficient.

If I did not need chat history, or knew all clients would support it, I would pick IRC.

XMPP

I have tried ejabberd. I have tried Prosŏdy. I have tried Snikket.

With each I had to dig into repositories and OCI metadata to understand implicit deployment expectations. They insisted on self-managing TLS certificates, and did not do a great job doing it.

Matrix

No.

I have read enough about Matrix to know to stay away from it. Maintainers, I am deeply sorry, nothing personal.

Mumble

I can imagine Mumble being a one-off thing when your text-only platform friends need to talk to you.

Deployment was flawless. I have no use for it though.

Mattermost

Self-hosted Mattermost consists of an all-in-one container and a PostgreSQL database. It feels like a cousin of Discord and Slack living abroad in a country with lower GDP.

Mattermost supports hosting multiple isolated teams ("guilds" in Discord terms) and has custom emojis. The UI is fine; its thread handling is kind of strange, but you get used to it once you mentally isolate the concept from Discord. Supports voice calls with RTC and STUN via a plugin.

The search feature seems to miss a lot of terms, I frequently get no results when I search for URLs or substrings.

Zulip

I had to deploy Zulip to realize its UX model was not working for me and my friends. We found the UI confusing and 2010s-era. Forced threading is not our thing.

Though I have torn down my test instance, I have kept the Quadlet files, as they might be useful for others or to me in the future. I plan to write a blog post on my experience migrating the Zulip Docker Compose to Podman Quadlets.

Stoat

Stoat, formerly Revolt, is a Discord reimplementation that aims to be scalable to 10k+ users.

The deployment consists of fourteen (!) containers, and their Web UI is currently being rewritten and is not feature complete.

It is noticable self-hosting was not a direct requirement when they were implementing the stack, as parts of it break under the original assumptions:

The UI feels very fast and snappy, and once you deploy all containers, they fit together nicely. I did not try out voice calls.

I plan to continue with the evaluation.

On My Watch List

Rocket.Chat

Self-hosted Rocket.chat version has a limit of 50 users, which is comfortable for me, but raises questions about other limits now or in the future.

My use-case is not really "military, intergovernmental, and public-private coalitions", but it is good rocket-to-rocket federation is considered. Clearly documented are air-gapping, zero-trust, information governance and server-side encryption -- good. They list both political organizations and companies as customers, so they got both funding and reasons to do testing before a release.

I did not look into self-hosting details yet.

Fluxer

Fluxer has a big red box in their GitHub README warning against self-hosting, because it is not ready yet.

I may revisit it in a few years, but the fact they have two full-time employees who are aware of the limits of their software feels like a really good sign.

Sharkord

Sharkord does look promising long-term. Scaling Sharkord across friend groups would require multiple instances. Lacks mobile client, but perhaps a web view would suffice.

Fediverse

I have not considered it until I started writing this blog post, but perhaps some of the Fediverse applications would work.

You would write a message and people would either reply or not. The channels on our Discord server were more of a hint than a requirement anyway.

I would just lock the access down, disable federation and we would be good. I would just need to host an instance per friend group, if I did not want them to mix.

I am putting Akkoma and GoToSocial on my list of sofware to try.

Outro

My friends group currently lives on a Mattermost instance my friend is hosting. He has a good laugh every time I complain about the other software I am failing to self-host.

#digital-sovereignty #leaving-discord #selfhosting