The Newsroom Sep 18th, 2018

Goodbye Slack, Hello Discord!

Goodbye Slack, Hello Discord!

Jack McDade 7 min read

We've been using Slack as a public chat for the Statamic community for over 3 years. At first, it was great. New, well built software designed to let us communicate in real time, organize conversations by topic or channel, private rooms, direct messages, bots and integrations, you name it.

And then the problems began. Slowly, quietly, lurking in the shadows. Perhaps not affecting everyone, but they began to stack up.

TL;DR: We've moved to Discord. Come join us!

The Problems with Slack

Notification Controls

Notifications on top of notifications with no way to truly mute channels. Simply being signed in was stressful.

Message Limits

The 10k message cap for free accounts was frustrating. Just a day or two after a helpful conversation, it was gone forever (unless we paid). Yes, chat transcripts aren't as useful as docs, forum posts, or knowledge base articles, but that doesn't mean we still didn't want to dig them up from time to time. Especially in DMs.

File Storage

File upload limitations with no way to bulk delete old files. Every new person to join the Slack workspace and upload an image would be blasted with a message saying you were out of space and the account needed to be upgrade. This would spawn the inevitable conversation topic "Why doesn't Statamic pay for Slack? It's just $8/mo per user, we're all loyal, I'd even pitch in!" Then you do the math. 1,800*8 = $14,400 per month. No thanks.

We would have happily paid $50/mo or more to file storage, or the ability to connect to an S3 bucket or something. But this isn't Slack's business model, and we don't fit their target use case. Slack was designed for teams, not communities.

Roles and Moderation

Slack is missing granular roles, which meant that to have certain features enabled, everyone could control them. Everyone can spam @channel or @here, DM anyone, and get away with it. This didn't happen often, but just knowing it could meant we needed to be proactive with sending messages to members informing them of the "rules".

If we wanted to "elevate" a community member to a high role or status to let them help with moderation, there really wasn't a way, short of putting them in the "owners" seat.

The "Invitation System"

Again, since Slack was designed for private teams and not open communities, we had to use a third party node app that used the API to initiate invites and auto-resolve the confirmation process. These tools are not that secure, and early on one of them was exploited and a spam bomb went off, inviting thousands of people to our Slack workspace.

I got emails saying "We would never work with a company that used such invasive marketing tactics!!" and "What the heck is a Statamic?" I remember that disaster mitigation week very well, working through hundreds of 1-on-1 conversations, apologizing to people, sending apology emails as we patched up the node application and added ReCaptcha and other checks and throttles.

This is not an attack vector you want to be constantly worried about.

Separation of Concerns

We use Slack internally here at Statamic because it does work really well for teams, especially when you combine it with Basecamp for longer-term planning and asynchronous communication.

By having the Statamic community in the Slack tab bar, there was always a badge lighting up. There was nothing that could be done about it, short of remove it from the app and open it in a web browser from time to time.

It's not that we want to ignore the community chat, but we have a lot of work to do, supporting our users with direct support, working on the core, and finishing v3. We have to balance a lot of things with a small team, and having a separate application entirely is a wonderful way to enter "Focus Mode".

Why Discord?

If you've used Slack, you can probably relate to our laundry list. It was clear we needed a new platform, that people love live chat (and we already have an active forum), and all that was left was to figure out which one.

So I started researching. I looked at Spectrum, Google Chat, Telegram, Discourse, Gitter, and a bunch of others, and kept coming back to Discord.

If you're familiar with it, you know it's primary audience is gamers. It's integrated into a lot of games and platforms directly as a way for communities/guilds/clans to chat. What you may not know is that they've been working to build up their secondary audience: developers. They have a roadmap of features and things they're working on, and many of them are dev-focused. They've integrated webhooks, have an API, and all the stuff you'd need to customize your "Server" as they call it. And I like where they're heading.

The Business Model

Discord's business model focuses on the individual user instead of the organization/company. They have a laundry list of features you can enable by paying $4.99 per month (this is called Discord Nitro), like animated avatars and emojis, boosted upload limits, high quality screen sharing, choosing your discord tag, and a special profile badge. If someone in the Statamic Discord wants these features, they can have them for just a few bucks a month. In turn, we have unlimited file storage, unlimited messages, and a whole lot more that we didn't in Slack.

The Interface

The interface is very similar to Slack (also offering a Dark Mode, which is pretty rad) and supports most, if not all of the main keyboard shortcuts. Honestly, you'll feel right at home in 5 minutes or less.

Discord User Interface
The Discord User Interface β€” Light Theme

Channel Categories

We can now group channels into categories, allowing us to stay a lot more organized, and avoid the firehose problem.

Named Roles

We can now call out different roles for the users in Discord. Like Core Team, Support Heroes, Partners, and so on. Plus, you can tell Discord to show what game you're playing. It turns out, Sublime Text and VS Code are the most popular "games" in our community. πŸ˜‚

True Muted Channels!

When you mute a channel, it's muted. No little white badge. Nothing. Like it doesn't exist, until you go unmute it. ❀️

The Invitation System

It's just the way it's supposed to be. Nothing more to say.

Screen-Sharing and Voice/Video Calls

In private groups of up to 10, this is built right in. Not tucked away behind a premium tier.

Getting the Most out of Discord

Since this is happening, and we've already had a few hundred move over from Slack already, here are some tips we found to get the most out of Discord as a developer.

Chose your theme

Discord uses the dark theme by default. If you like it, great. If you want it to feel more like Slack, head into User settings (press cmd+, for short) and under Appearance you have your choice of themes, font size, and all that stuff.

Turn on Developer Mode

Also under Appearance you should enable Developer Mode. This will give you additional contextual message options when you click a message's options (those 3 dots). You can get the link to a message so you can paste it elsewhere and reference it. Something very useful when chatting through support topics.

Discord Developer Mode
Developer mode is where's the party's at.

Code Block Syntax Highlighting

Discord supports specific-language syntax highlighting, which is pretty cool. After your three ticks ```, you can add css or php and it will highlight accordingly.

Read about the Markdown and Code Highlighting options.

Download the Desktop/Mobile apps

Just like Slack, Discord has native apps for a better experience. Download them here.

Update your nickname

In User Settings > My Account You can set your username to whatever you want. We recommend using your real name, or at least your first name. And upload an Avatar. This isn't the dark web. Let's get to know either other.

In closing...

Come join us in Discord. If you want. We're just not going to be in Slack anymore. 😊 Rest in peace, Slack.