Skip to content

Reduce dependence on LOOT's Discord server as a reference #130

@Ortham

Description

@Ortham

We've been using Discord as a place to discuss LOOT and provide support since July 2018. It's useful, with some positives (as I see them) being:

  • real-time chat organised into different channels, and searchable message history
  • an interface that's familiar to many users, by virtue of Discord being a popular gaming-related chat platform
  • although you need an account to access the "server", many people already have an account for one reason or another
  • AFAICT you can do anything in the mobile app that you can do on desktop
  • it's low-effort to administrate
  • moderation tooling is pretty easy to use (e.g. ban a user and delete all their posts at the same time, useful for dealing with spam)
  • fairly granular role-based permissions with support for custom roles
  • GitHub integration so that you can see in one place everything that's happening on GitHub
  • good support for account security

However, it's not without negatives:

  • The combination of needing an account and to join the server before being able to see anything means that it's a bit of a black hole for information. There's also no official way to export a server's data.
  • The search results appearing in a sidebar means that it can be awkward to navigate the search results, everything gets a bit squashed.
  • Similarly, since everything appears in a single window, context-switching between channels or servers (e.g. because you want to reference something you saw posted in a different chat) is painful.
  • Although it's got threads as a way of organising different concurrent conversations within a channel, they're awkward to use since you don't know if it's worth creating a thread until it's too late.

In addition, Discord's new "teen-by-default" policy of requiring "age assurance" before being able to view content that Discord considers inappropriate for teenagers is problematic, for reasons including the real-world privacy and security implications and impacts of sharing your identity with platforms and service providers who cannot be trusted to handle that data minimally and responsibly, and also because Discord's judgement of what it considers to be appropriate for teenagers is apparently arbitrary and opaque.

As a community I don't think we're likely to be affected much by that teen-by-default approach, as although mods can include adult content, such content is typically already kept behind some form of age block or speedbump, and as per our own server rules we do try to keep the server content inclusive and appropriate for all.

That said, the announcement has got me thinking: what would happen if Discord were to introduce some restriction that made the server practically unusable, or banned our accounts for some reason, or even just deleted/lost the server one day? There are two aspects to that:

  • The loss of everything that's currently in the Discord server
  • The loss of a place for chats to happen in the future

I'm mostly concerned about the former: for the latter, there are other chat platforms, and once set up elsewhere we'd just need to update our website's Discord link to point to the new platform instead.


Discussions in Discord have prompted the creation of many issues and pull requests here, with links back to the originating Discord messages. Some commits also link to Discord messages. Those messages are often the only place that context or details are found, so losing the Discord server could mean losing valuable history.

With that in mind, I propose that we change how we handle referencing information held in Discord, so that we consistently avoid that dependence.

  • Whenever we link to a Discord message, also include that message content inline.
    • If linking from a GitHub issue or pull request, one option is to screenshot the relevant message(s), and upload the screenshot(s) as part of the issue/PR description/comment. Here's an example.
    • Alternatively, Markdown blockquotes can be used to quote the text, citing the author, channel (and server, if it's not the LOOT server) and timestamp. Here's an example. This can also be done in commit messages, which are text-only.
  • We can update existing references in issue/PR descriptions/comments by editing them to include the Discord message(s) inline.
  • We can't edit existing Git commits without rewriting history (which isn't worth it), but we can add the context as comments on the commits, and also as Git notes, so that the data is also stored as part of the Git repository, not just as GitHub repository metadata (though pushing and fetching Git notes isn't automatic, unfortunately, and GitHub doesn't display the notes, which is why a comment on the commit is also useful). Here's an example.

For finding existing Discord references:

  • This search finds mentions of "discord" across LOOT's GitHub org, though it doesn't find hyperlinks where "discord" appears in the hyperlink's URL but not the hyperlink's label text.
  • If you've got the Git repositories cloned locally, for d in ./*/; do cd "$d"; echo "$d" >> ../discord.txt; git log --grep 'discord' -i | tee -a ../discord.txt; cd -; done will find all commits with messages that mention Discord across all repositories within the current directory.

Aside from that, I've now got a backup of what should be all messages in the server, thanks to DiscordChatExporter and a Discord bot that I've added to the server. The backup should have everything as of 2026-02-17 20:00 UTC. It took a few hours to export everything as JSON with accompanying media assets, and comes to 3.2 GB (2.6 GB compressed).

I'm not sure how useful that export will end up being, but at least I've got it now. 🤷‍♂️

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions