Making Discord Suitable for Software Development

Gerard O'Neill
Mar 20 · 9 min read

For about the past year, I have been a member of the Vegan Hacktivists. We are an online activist group whose purpose is to build websites and web applications in an attempt to help end animal abuse. A lot of things have changed for the better since I first joined, but we still have some issues with our process, or lack thereof; managing a team of part-time volunteers is a difficult thing to do, and lately, I’ve been spending a lot of time thinking about how to properly handle the number of people we have involved, as well as how to scale to a larger size.

One of the things that I realized is that our Discord server is not suitable for software development. It dawned upon me that I absolutely hated being in the Discord server. Almost all meaningful communication happened in direct messages. I think I finally figured out why, and I’d like to share my thoughts in hopes that I can help others out there struggling with the same issue. Some of this is specific to our server, but I would argue that some of the problems are inherent in Discord itself. I will discuss both points.

We use Discord to communicate for several reasons:

  • It’s free.
  • We don’t need to host it ourselves (this involves more work and potentially more money).
  • There is no message history limit like there is with the free version of Slack.
  • We are not yet a registered non-profit, so we can’t get premium Slack features for free.
  • It is the preferred choice of our fearless leader, David.

There is a caveat to that last reason, however: David is not quite fearless. For some reason, he fears Slack. I suspect that he’s afraid mostly because he’s afraid of change in general, despite receiving advice from a professional software engineer about how to best engineer software. Once we get our non-profit status, I will fight harder for Slack, which is much more geared towards the work we’re doing. While Discord has some really cool features and is not a bad piece of software, it is targeted towards gamers, and our activism is expressed through software development, not playing video games.

Here is what someone sees when they first join our server.

There is a ton going on here, and we’ll get to all of it. Here’s a quick list of issues:

  1. There are emojis everywhere. Every channel, role, and username has an emoji next to it. This is visual clutter, and extremely overwhelming.
  2. Each role is assigned a different color, which is also distracting. My username is red, Pablo’s is green, David’s is purple, etc.
  3. The members list is open, which further adds clutter and removes space for reading messages.
  4. There are a ton of channels. In fact, even if you ignore the first two, which are private, there are 22 channels. That’s almost one channel for every two members currently in the Discord server.

The first two issues (especially #1) are completely David’s fault. He loves adding digital glitter to everything, even if he is told by everyone else that it’s not a good idea. However, Discord provides no way to solve the second problem. If you join a Discord server, display names are rendered exactly as the server admin wants them to be. We will solve these a bit later, since more work is required.

Let’s get some quick wins in right now, though. From a quick survey of other developers, it seemed that most people don’t know that you can hide the member list by clicking the “Member List” button to the left of the search bar. This is Discord’s fault, as it’s very difficult to differentiate between the active and inactive states for those buttons; the only visual indicators are their respective colors, which look almost the same.

This is better already! Let’s solve the next problem, which is the list of channels. For some reason, Discord does not allow you to leave a channel. In my opinion, this is the absolute worst thing about Discord. As long as you have permission to view a channel, then you are inside the channel and there’s no way to leave. Let’s do the next best thing, which is muting them. In order to mute a channel, right click on one and click “Mute channel,” followed by “Until I turn it back on.”

Perfect, right? Now, instead of it showing the channel in light gray, it shows it in dark gray, which is a game changer. Jokes aside, we can now get rid of it. Click on the channel name in the top left corner and select “Hide muted channels.”

This will remove any channel that you’ve muted. Want to mute a whole category of channels? You can do that too! Simply right click on the category name and then “Mute Category” followed by “Until I turn it back on.”

Huh. For some reason, “Hide muted channels” doesn’t hide muted categories, and even if you hide every channel in a category, the category’s name will still show up in your sidebar. Thus, this is better than before, but still a pretty crappy experience. What makes it worse is that if you are not one of the lucky users to be interested in categories listed at the top of the channel list, then you’ll still need to scroll past your muted categories in order to see what you want to. This is because just like the colors of people’s display names, Discord forces your list of channels to be ordered exactly as the server admin has them sorted. This is a user experience not even worthy of being called trash. It is worse than that, so we’ll need to fix that later as well.

Before I get into the third-party stuff, let’s take care of something else that can be done in the Discord preferences. If you’re like me, you hate dark mode themes for anything that you need to read. I appreciate it on my phone at night, but I prefer light mode for anything that is not my code editor at any given time in any given place. To change this, click on the gear icon in the bottom left of the screen next to your username, which is for your user preferences. There will be a button labeled “Appearance” on the left side, which allows you to set the theme to light mode.

Seriously, Discord? I don’t like to say mean things to fellow programmers or their designer friends, but this burns my eyes. I don’t know how it’s not a joke that this is your light theme. That being said, we can make it a little better by going back to the “Appearance” preferences and toggling the “Dark Sidebar” option.

Alright, much less burn on my eyes, but still pretty ugly compared to Slack. In order to fix that, as well as the other problems mentioned earlier, you will need to download a third-party tool.

At the time of writing, it seems that the most maintained and up-to-date tool for our needs is the Bandaged BD fork of a tool called Better Discord. Click either of those links and find the download for your operating system. As is often the case, Linux users will have to do more work, but you’re probably used to that. I don’t know what the installation process is like for Windows, but for macOS, simply open the app and keep clicking “Next,” making sure that everything is correct.

One of the things that Better Discord allows you to do is set custom CSS, and they also make things easy by injecting static class names into the app that you can use for this purpose. Open your user preferences again (the gear in the lower left corner) and scroll down to “Custom CSS” in the Bandaged BD section.

For some reason, Discord messages are slightly bolded, which I think this is ugly and makes reading more difficult. If you agree, add this to your custom CSS:

.theme-light .da-messageContent {
font-weight: 400;
}

Likewise, the text inside the message bar is also bold. To undo that:

.theme-light .da-textArea,
.theme-light .da-markup {
font-weight: 400;
}

In order to hide muted categories, add this:

.da-muted {
display: none;
}

Note for muted channels and categories: If you get pinged in a muted channel, then it will still show up. Also, if you want to access a muted channel for some reason, you can press Cmd + K (Ctrl + K on Windows and Linux, I assume), which will open a search bar that you can use to navigate to all channels, DMs, and servers that you have access to.

If you think having a bunch of different colors for usernames and roles is distracting, add this:

.da-username, .da-roleColor {
color: #222 !important;
}
.mention {
color: #222 !important;
font-weight: 500;
}

Even with all these improvements, I find the message bar ugly. To make it look more like Slack’s, you can do something like this:

.da-channelTextArea div[class*="scrollableContainer"] {
background: #FFF;
border: 1px solid #AAA;
}

Lastly, if you are in a Discord server run by David and you’d like to remove the emojis, you can use this extremely hacky CSS:

.da-containerDefault .da-name:not(.da-container) {
text-indent: -20px;
}

The problem with this is that it only works on channel names and will mess up any server that you’re in that’s not run by David.

Let’s have a look at the final result:

Beautiful! It’s not perfect, but it’s a ginormous improvement from the beginning. Most people quickly glancing at my screen would probably think they’re looking at Slack, rather than Discord.

After these changes, it’s going to make it much easier for me to communicate with the rest of the team. If you find yourself in a similar situation, then I hope this post has provided enough tips to set you up for success as a developer using Discord.

With all that being said, if enough people on your team need to individually go through such heavy customization in order to feel like they’re using a tool that’s conducive to being productive, then it is either the case that it’s the wrong tool for the job, or the tool has been set up incorrectly (or perhaps both are true). Rather than relying on everybody making the tool better for themselves, you should solve the problems at the root level. If people on your team want to use Slack, then use Slack. If people don’t want emojis and crazy colors everywhere, then it’s in your best interest to listen to them. Without good tools, good work can’t be done.

Also, while I have your eyeballs, please read and understand the following: Everyone who is not a vegan is a supporter of animal abuse. If you want proof, then watch Dominion. Go vegan.

Are you a vegan interested in fighting to end animal abuse? Reach out to us.

Gerard O'Neill

Written by

Just a crazy kid whose thoughts may get him in trouble one day. Nothing I say reflects the opinions of people who pay me. https://grardb.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade