Slack isn’t designed for large online communities, especially in the crypto world. We had over 8000 users in our Sia Slack team, but were running into serious limitations — lots of spam, no moderation, myetherwallet scams, no message history, no space left for uploads, and more.

This makes sense, since Slack is built for business teams that know and trust one another. Discord, on the other hand, is designed for gaming communities that suffer from many of the same challenges that face crypto communities.

We made the successful switch from Slack to Discord in mid-August and currently have over 5300 engaged users. Our goal is to have all other crypto communities switch over to Discord — that’s why we created this guide!

Let us know if you have any questions. You can find us at https://discord.gg/sia.

Step 1: Communicate Effectively

First, you need to give your community a heads up and collect feedback. Several weeks prior to the switch, we started letting our most active members know that we were looking for an alternative to Slack. We set up Discord and Mattermost instances and invited community members to test and provide feedback.

Then, a couple days prior to making the move, we shared a blog post across all our channels. The post walked through the challenges we were facing with Slack, the benefits of Discord, and the timeline for moving. You can read the post, linked below:

There was some pushback from the community, but this is natural — Discord has limitations, and Slack is incredibly convenient when you’re signed into multiple teams through the same app. But we knew Discord would be the right move for the long-term, so we pushed on!

Step 2: Configure Discord Server

Setting up a Discord server is far more complicated then setting up a Slack team. The major difference is Discord has “roles,” which are similar to permission levels. Users can be assigned one or more roles, and each role has different permissions associated with it. For example, I could be assigned the developer role and have access to developer-only channels.

We recommend reading this guide from Discord to better understand how it all works. Importantly, role permissions are based on a hierarchy.

Here’s how we set up some basic roles in our server:

Admins are assigned the admin role. They have full permissions, including reordering channels for all users and seeing every channel across the server. Only two of us have the admin role, so that the larger Core team isn’t distracted by dozens of channels.

role. They have full permissions, including reordering channels for all users and seeing every channel across the server. Only two of us have the admin role, so that the larger Core team isn’t distracted by dozens of channels. Core team members are assigned the sia core team role. This role is given the color green and is displayed separately from other users (so our users easily know who Core team members are). This role has almost all permissions.

role. This role is given the color green and is displayed separately from other users (so our users easily know who Core team members are). This role has almost all permissions. Moderators are assigned the moderators role with a blue color, also displayed separately so users can easily identify our mods. Moderators have permissions to ban users, delete any messages, and more.

Users without roles are added to our default channels: #welcome, #join-channels, #announcements, #general, #help. This is a good first step, but we also wanted to have dozens of channels that were not shown by default, that our users could easily join. By default, though, Discord displays all channels to users.

To get around this limitation, we created dozens of other roles, with each role corresponding to one or more hidden channels. Adding a user to a role unhides those channels for that specific user.

For example, adding a user to the developer role unhides the #core-dev and #app-dev channels. Adding a user to the trading role unhides the #trading channel. And so on.

Mods can add users to roles, but that doesn’t scale. So we created Siabot by forking a bot from the Destiny server that allows users to join channels by clicking on emojis. We set up a channel called #join-channels that displays our main channels available to join. By clicking on a corresponding emoji, you get assigned the specific role, which unhides the specific channel.

Clicking on the emoji on the bottom adds you to the specific channel

This has allowed our 5000+ users to select their own channels, and helped us circumvent Discord’s limited channel management tools.

We recommend that you come take a look at our Discord server at https://discord.gg/sia. You can try out our #join-channels feature, see how we have roles set up, and read our #welcome messages. You can also fork our bot in order to set up your own server with better channel management.

Step 3: Transition from Slack

Once we launched the Discord server, we knew it was important to get everyone to switch. We sent out links via Slack, Twitter, and Reddit, and continued to send out messages in Slack that we’ve switched to Discord. Within days, Slack usage dropped off.

We also downloaded a user list from Slack. You can do so from navigating to https://teamname.slack.com/admin and clicking on the “Download member list as a CSV” button. We sent out an email to all our Slack users explaining that we’ve moved to Discord:

Email to Slack users

Finally, as users joined Discord, we maintained momentum by being far more active than usual as a Core team. We welcomed users individually, heavily engaged with users in the various channels, and announced when we passed 1000 users.

Step 4: Grow the Server

Since the move, users have requested new channels, such as language-specific channels. It’s important to accommodate these requests, as we want to encourage micro-communities to grow inside the larger Sia Discord server. We gave users the ability to DM Siabot and ask for a complete list of channels, and then join channels via message commands.

Additionally, we applied to the Discord Partners program. Discord Partners get a custom URL with custom splash, VIP voice servers, and more.

Over time, we’ll find ways to take advantage of new Discord features like screen sharing, video streaming, and channel categories. Discord is constantly releasing new features, and is very receptive to feedback. We are so excited to be among the first crypto communities to switch to Discord, and can’t wait for others to join us!