Building OSS Communities on Discord

by Sarah Kaiser

There are lots of options when it comes to tools/tech/platforms for connecting people, but for the communities I manage, Discord has been a great option.
It integrates voice and text communications in a casual setting, has clients for all platforms + web, good tools for community moderation and onboarding, and the bot ecosystem is huge (and it's not too hard to build your own!)

BIG DISCLAIMER: Discord may not be the right tool for your community, that's ok <3 This post also has a lot of discussions on what went into choosing Discord which might be helpful in thinking through your community needs.

What does your community need?

You may need a place to:

  • ask questions
  • meet and host calls
  • archive community knowledge
  • get to know each other
  • coordinate sprints/events
  • share news and announcements
  • highlight individual contributions/accomplishments

These are all pretty broad and your community likely has some subset of these needs met by existing tools and practices.

What tools are out there?

  • All manner of social media
  • Slack
  • Discourse
  • Gitter
  • Matrix
  • Zulip
  • Notion
  • GitHub
  • Zoom
  • Jitsi

What do you use? Let me know on Mastodon or on the Microsoft Python Discord!

What is Discord?

Discord is free to use (not open source) app with desktop, mobile, and web interfaces for text, audio, and video chats.
The app is monetized via optional user subscriptions (called Nitro) which add mostly cosmetic features but also higher resolution audio/video streaming quality.
You can also buy "boosts" which are assigned to servers which grant everyone on the server additional perks and more customization options.
They are both not necessary to have a good community platform, but depending on your needs they may be helpful.

TODO: Tip: No matter the boost level, you cannot have more than 25 people on a video call that is sharing video (audio is 100, Stage is more, but with limited speakers). In these cases, if I need space for more folks, I would move the event to Twitch/YouTube/Zoom/etc.

There are

What do people generally do on Discord?

  • Looking for help on technical topic
    • Forums to keep help nicely threaded
    • Co-working spaces
  • Project/product-specific activities
    • Channel for the project/product for general discussion
    • Community call voice channel/stage (can reuse)
  • Event engagement (attending a conference/workshop/lab) and directed to Discord forum for event
    • events created in advance and reminders (possibly auto?)
    • Social/General engagement General topic channels (IoT, ML, etc)
  • Fun activities like polls or requests for comment
    • Sharing their work way to (not spammy) share blogs, videos, conferences/talks
  • Feature weekly best content item to show our engagement
    • feedback wanted tag
  • Learning more/finding resources on Azure/Microsoft Python Directory
    • page/pointer to repo so folks can find all docs/social/blogs
    • Intros to MSFT staff, clear sever roles

Finding servers

Ideas for content

  • Self promotion channel for community to share their wins/projects
  • Weekly polls or discussion questions to remind folks check in each week
  • Bots! They make lots of stuff more fun and accessible, and it's [fun to make them]
  • Custom emoji and stickers (more slots with paid boosting)
  • Community calls, Book clubs, Journal clubs
  • Co-working or rubber ducking sessions

General advice for server owners/moderators

  • If you have trouble with streaming quality and can afford a couple hundred bucks a year, the boost are a great way to take burden off individuals to subscribe and get much higher streaming quality, as well as a nice share link for the server.
  • Make your server a Community server and setup the onboarding and role selects! It doesn't take too long and is a huge value add to the community for continued engagement. (I will have a guide out soon on how to setup a community server for OSS teams soon :D)
  • There is no built-in recording for video or audio calls, but I have found using tools like OBS to record the call when I pop it out into a separate window to be pretty successful. Then you can share the videos on other platforms and post an announcement when they are uploaded!
  • Have a channel where the mods introduce themselves (if the server is not giant) so folks can know a bit more about who they can ask for help.
  • Use events! Remind folks not only of events on the server, but also events in the community like conferences or CFP deadlines. Best to back with a google/outlook/ calender and sync via TODO.