Software Project Spotlight: discordless
June 2025
Discord is a chat and voice chat app originally developed for gaming, but since its launch it has been adopted by many online communities outside of gaming that would have traditionally hosted a publicly accessible forum or mailing list. This is problematic since discord is part of the deep web: While many of these communities are open for anyone who joins their discord server, discord is not indexed and searchable by search engines. I think it is sad if this knowledge is no longer as easily accessible and discoverable.
Luckily, at least what is on discord is preserved relatively well: I haven't noticed any data get deleted, and using the search function, you can go back many years.
However, Discord is a private company, interested in making a profit. Access to discord is free and while they sell Nitro, a subscription offering some perks like larger file uploads or a longer message character limit, the advantage it provides doesn't warrant the costs for most people. Most likely, Nitro sales alone don't provide enough money to sustainably operate the platform. It is probably only a question of time until enshitification or paywalls start. In a sense, it has already started with ads occasionally appearing on mobile.
To preserve the knowledge and conversations of discord, I've started to automatically archive conversations from discord and eventually plan to mirror them on the web. This solves both problems: A web archive of a discord server is indexable, and it can also stay accessible long after communities have migrated to other platforms if discord eventually is no longer usable.
The issue with archiving discord: It is not something discord officially supports. As for inofficial ways, there are options. You could write a bot that records all messages, but that is against the terms of service.
Instead, I'm using a method developed by a project called discordless. Discordless is a man-in-the-middle proxy that automatically records all discord traffic. In a next step, a script converts the recorded traffic into formats like HTML or DiscordChatExporter compatible JSON.
Some advantages of discordless' approach include that it is difficult to detect. We are not spamming discord's APIs. As far as I'm aware, it doesn't violate discord's terms of service. Only sharing your recordings publicly might infringe on the copyright of people who sent messages.
Another strength of discordless is that it records the raw traffic. This means that old messages can be reexported with improved exporters when improvements are made.
Discordless is not without its share of issues. One problem is to get discord to use the proxy. For performance
reasons, you probably don't want to send all traffic through the proxy. On desktop operating systems, this
can be achieved by specifying the --proxy-server=<your server>
option on the commandline, but
at least on macOS, there is no easy way to do this with an app in your launch menu. In the end, I've
resorted to not having discord in the launch menu, but an Automator app that just launches discord
with these arguments.
A similar issue is on iOS: You can only specify a proxy per WiFi. If you join a new WiFi, you'll have to reenter the proxy server details. This is annoying enough that I've only done it for the most important networks, like at home and at my university.
A proxy can only record messages I'm loading in the discord app, so there is no guarantee it will get all messages. But since I'm fairly active, it will get most.
Discordless is a small, slightly disorganized project, but it contains the scripts and techniques that makes it possible to archive and publicly mirror knowledge hidden in discord.