Professor, Designer, Husband, Father, Gamer, Bagpiper

Over the past years, I've become a heavy user of both Slack and Discord, two applications for supporting community chat. Both let you create invite-only servers which are organized around public or private channels for different topics. Both have slightly different features and integrations with external services. For example, Discord has more powerful and flexible roles and moderation, audio chat, etc. Slack lets you do more within a server, such as having ad-hoc chats or messaging with a set of members (Discord pushes these outside a server into your friend groups).  

If your use requires a Slack- or Discord-specific feature, you will likely go with that service.  But what if it doesn't?  How do you pick?  

The research and academic community has embraced slack over the years. I am on Slack's for my lab, my department, various conference organization committees, software application and software library support, and so on.  In contrast, informal communities seem to be more common on Discord.  I know people who routinely fire up a new server for a small, informal community, some of which grow and others are used for a short while and then disappear.  Small or large groups of gamers, hobby groups, fan groups, and twitch or streamer communities seem to dominate the platform.

But inertia shouldn't dictate you choice. If you're thinking about using one of these chat platforms for your community, which should you choose, and what should you consider when making the choice?

Below, I highlight three main practical differences between these services, independent of the obvious "features" of the services.  My experience is based on my long term use of Discord and Slack, but mostly based on the insight gained using Discord this fall for two significant professional activities:  running the remote participant activities for the ACM UIST (User Interface Software and Technology) conference and to support student chat for my CS3451 Introduction to Computer Graphics class at Georgia Tech.  For both activities, the users of my servers probably noticed the first two differences below (the way accounts are managed, and premium features are billed), but may not have been as concious of the final one (support for effective asynchronous communication).

How much each of these matters is dependent on your community, the context of use, and what sort of chat will happen in it.

One Account or Many

The first obvious difference is the friction for creating or joining a new community;   Slack forces you to create and use a separate account per server (even if you choose to use the same email and password), while Discord assumes you will have one account and add servers to it.  The choice has implications for your users.

With only one account, any time I log into Discord on a new device, I have all my servers available to me. It's incredibly convenient.  On Slack, I need to (painfully) connect to each of the servers I care about.  I curse Slack every time I join a new server and have to manually add it every device I have.  Worse, I have to add every server to Slack when I set up a new phone, tablet or computer.  

One the other hand, with only one account, your identity is the same everywhere.  My account (profblair, with a #NNNN for digit number after it) is the same everywhere, although I can change the nickname that shows up on each server.  For my kids, and students, their Discord ID is often playfull (sometimes offensive) and not something they want tied to their real name, so using it in a professional setting is a huge downside.

So, the choise is a bit of a wash.  For someone like me, who uses their real identity everwhere online, I'm comfortable having people knowing who I am.  But younger people who've grown up online tend to curate their identity much more carefully across different services, and may find this restriction unacceptable.  

On Slack, premium servies (such as unlimited chat history, larger file uploads, and group video) are enabled per server, and charged per user on the server.  Premium Slacks can get quite expensive.  On Discord, premium services (such as higher quality video, personal custom emojis, larger media uploads) are per user, so all servers are free to create and use and not otherwise limited in their feature set.

I personally pay for a premium ("Nitro") Discord account, because it provides value to me, and get to use those features everywhere.  The servers I create are not limited, nor do the costs vary based on the popularity of those servers.

For professional use, such as at a company or research group, a paid server has the advantage of centralizing the costs for premium services and not pushing the choice to each user.  (Of course, for an academic like me, I live with the limitations of free servers because I can't justify the costs).

Managing Asynchronous Chat

Both of the previous differences pretty general;  users prefer one approach to accounts or the other, and the server has features or it doesn't.  But once people are using the server, they don't impact use too much.

For day to day use, one increasingly obvious different for me has been the support for managing asynchronous chat.  When a group of people are signed in, and sending messages back and forth, there is little difference between these services.  Text, audio, files, emoji, and gifs can be sent to the channel in a stream of messages.  Messages can be tagged with emoji, and users can click on already-tagged emoji to add to the count.

But, what if I open the app after being away for a while, and see a pile of messages in a channel?  I skim back through the missed messages and see messages I want to respond to.  On my class and conference Discords, I might want to answer a student or participant question.  Or, I may not have the information handy (or the time to answer), so I might want to answer later.  In both of these situations, the two services differ dramatically.

Responding Now or Later

On both Slack and Discord, the servers I run tend to have dozens of channels after a while.  With more than a dozen servers on each service, keeping track of messages and conversations can be challenging, and rarely can I respond to all the messages I want to.  Slack outshines Discord here, in two ways:

  • If you see a message in a channel that you know you need to respond to, you can tell Slack to remind you about this message later.  At the designated time, Slack with message you on a private channel, with a pointer to the message.  (You can also "favorite" messages so you can find them later).
  • If you want to revisit the discussion in a channel later, you can also pick and message in the channel and mark it as unread.  That message, and all below it, will appear to be "new" in the interface, until you visit that channel again.

On Discord, there is no easy way to keep track of messages you cannot respond to immediately.  It is designed for synchronous chat and a stream of conversation.  For many uses, this is fine.  But for contexts where it's important that questions get answered, Slack is a clear winner.

Threading

The other side of answerings questions is how those answers fit into the flow of a channel.  Whether you're answering as part of a real-time chat, or answering a question that was asked earlier in the channel, things become confusing quickly when multiple conversations are happening in one channel ... which always ends up happening on these services.

In Slack, you can take any message and spawn a thread off it, to separate a discussion from the main chat channel.  This simple feature ends up being important in heavily used channels or asynchrounous conversations.  Discord has no such feature.  I cannot count the number of times the past few months where I've found myself wishing my Discord servers for my class and for the UIST conference had threaded conversations.

Summary

All this said, there is no clear and obvious answer.  

  • If Discord or Slack has top level features, or third party integrations, that you need, you probably have no choice but to go with that system.  A major part of our remote experience for UIST was built around Mozilla's Hubs social VR system, which is currently integrated with Discord but not Slack, so we needed to use Discord for UIST.  
  • If your target community already uses one of these services, and is comfortable with it, none of the above differences is probably enough to push you to the other service.  For my class, I hypothesized that the students would be more comfortable with Discord than Slack. I think that's true, but I also hadn't anticipated the downside of the "one Discord account" issue until I started seeing the students' Discord IDs. None of the students expressed any hesitation about using their IDs, but many didn't set up custom Nicknames for the server (until I asked) making it hard to tell who was who.   For UIST, the vast majority of researchers had used Slack but not Discord, and quite a few expressed annoyance at "having to learn another thing."
  • Discord's audio and video chat work better.  I've used it quite a bit for distributed meetings with colleauges not at Georgia Tech (where we have Bluejeans) and Mozilla (where we use Zoom) in preference to the Hangouts and Skype.  Slack video chat has been less useful.
  • For low volume connections to small groups, I tend to prefer Discord these days, because it is so much less friction to set up.  But as these groups grow, and the traffic grows, Slack's (rudimentory) support for threading, "marking unread," and "favourites" makes it easier to manage.  Of course, at some point you run up against the limits (message history, upload size) of Slack's free servers, and paying for servers with many members is a daunting endeavor for communities with little or no funds.

I hope this was helpful.  If you have any experiences you want to share, or comments on the article (especially if you feel I'm wrong or missed something), feel free to drop me a note.  I'm happy to update this article with more information.