Stop Putting Your Resources On Discord

(alt. title: I’m Not Joining Your Shitty Discord Server)

There are a lot of cases of people creating Discord guilds for their communities; prominent examples are speedrunning communities for a specific game, or perhaps fighting game communities. These communities produce a lot of resources specific to their game that is super useful for new players or for experienced players learning new tech.

However, people also have an annoying habit of putting these resources on their own Discord server. Why is this bad? There’s several reasons; Discord is not a fucking wiki and is absolutely not geared towards pretending to be one - I’ll get to that later.

SEO

Discord is completely unindexable to the public world. Search engines cannot access Discord. The only way to access data in a guild is to be in that guild, and the only way to search in that guild is to use Discord’s bad search function.

If you’re trying to find info about a tech in a game, for example, you can’t simply search it on Google; you have to find the server it is in (which can often be obscure!), join it, find the right channel and use Discord’s shitty search or check the pins if you’re lucky (which is not the most intuitive!).

This gets even worse if the guild in question has a screening process - now the information is not just locked behind a new app but also behind a bot - or even worse, an arbitrary human - that needs to approve you.

This is nothing short of user hostile and a complete threat to the open web as a whole. Imagine if every Wikia/Fandom site didn’t have any results on Google, and you had to specifically join each wiki. It’d be a disaster! It shouldn’t be acceptable anywhere.

God forbid you get banned from a server - you are COMPLETELY fucked. You can no longer see any of that content, ever, unless you ban evade or beg for an unban. Imagine if Wikipedia IP ban ranges also stopped you from viewing the wiki!

Server Wipes

Next, I will tell a story.

On the 19th of November, 2017, a misconfigured bot ran amok in the Discord API server. Every single channel was accidentally deleted due to a programmer mistake in an eval command.

Audit log

Discord API was/is the server for bot developers to get help making their bots, or making new libraries to interface with the Discord API. In an instant, three years of valuable history was completely wiped away. The administrators of the guild went to the Discord developers asking if the server could be restored, and for the next few hours people waited silently (as the new general channel was now read-only). Eventually, the developers got back to the admins with their response:

You’re shit out of luck.

Luckily, a lot of knowledge was stored outside of Discord, be it in the various documentation pages for the libraries or as tags on the developer bots. However, not every guild consists of programmers and wouldn’t be so lucky in the event of a total server wipe. Many servers use Discord as their primary source - what happens to all the things you create if someone decided to delete your channels?

Server wipes aren’t just limited to a mistake during an eval(). There a lot of big bots with administrator permissions in lots of servers; an exploit in one could wreak absolute havoc across the entire network with mass deletions. Discord, being a bastion of transparently, does not tell us if there’s any actual oversight over these bots (aside from the privacy violating ““verification”” system) - I suspect there is little to none. Even a misconfigured small bot coded specially for running a given could be hijacked, and all your data gone in an instant.

Bots aren’t the only way to destroy a server, of course. Really, they might even be one of the worse ways, as giving a bot Manage Channels is a bit unusual in 2021 (compared to the wild west of old permissions where everything had Administrator). Human moderators are a far more lucrative targets. Sure, the classic “steal password” attack won’t work with 2FA but good old social engineering can be pretty effective.

Walled Garden

Server wipes losing all of your data are a problem but they can be mitigated somewhat easily, provided you have an archive of the server. Now, how do you archive a server? You need to be actively recording every message sent in every channel as it comes in, since the start.

Sure, there’s the history endpoints; but that’s a completely infeasible way of downloading messages. My personal server before it stopped being actively used in early 2019 has a million messages. The history endpoint only allows 100 messages per download and is dynamically ratelimited; so even assuming a 1/1s that’s 10_000 calls which would take 3 hours. That 1/1s is global, so it’s 3 hours per million messages no matter how many servers.

If you’re using a bot account, that bot account will almost certainly get banned; and if you don’t control the server you’re trying to archive, you need to use a user token, and that will almost certainly get banned too.

This means that archiving a server is officially impossible, and unofficially very difficult deliberately because Discord is a walled garden that has a vested interest in making it impossible for you to migrate your message history.

Site-Wide Bans

Being banned on Discord is effectively final.

These users were each looking to reverse one of the 266,075 deletions issued by Trust & Safety. We reversed our decision in 3,937 cases — translating to an unban rate of about 1.5%.

There are many complaints on /r/discordapp that Trust&Safety are completely unresponsive. So if you get banned, fuck you, you can no longer even read the resources communities being built up.

Discord Is Not A Fucking Wiki

Let’s pretend that nothing before matters, that you can’t be banned, that servers are archived, and that channels are never deleted. Discord still sucks for resources!

When I actively used it, Discord search was shit. Maybe it still is, I don’t know, but it would rarely find the things I was looking for - but I could often still find them by searching something I knew happened around the time I mentioned it and scrolling up or down a bunch.

Discord offers no structure for messages beyond a restricted subset of GitHub Flavoured Markdown, which is counterproductive for trying to convey structured data like that a wiki can produce. No infoboxes, no headers, no decent search, nothing. The best you get are pinned messages. You only get 50 of them per channel! Imagine if Wikipedia only allowed 50 pages per category, and every page has no formatting beyond bold, italics, underlines and code blocks. It would be unreadable.

Conclusion

Please, dear god, stop using Discord as a wiki. It is an opaque link rot machine that is actively hostile to the user and the open web. Even Wikia is better, because at least that’s indexable!