The building blocks of a healthy community

Over the course of my time on the internet I have been a part of many different communities, from the household names to the highly niche.

If one thing can be learnt from them it’s that building a community is hard; building a welcoming, helpful, ludicrously smart community is nigh-on impossible.

Building one such community is something Mozilla has managed to do with Rust however. My first month using the language and interacting with it’s community has set a new gold-standard in my eyes for what a healthy community looks like.

In an attempt to understand how they’ve managed to do this, I’ve put together a list of some of the things that have impressed me most. Not all of the points are relevant for every type of community, but there should be one takeaway or another here for most.

1. Act how you want your community to act

In the spirit of the old “be the change you want to see in the world” saying, this is probably the most important point.

Having read through blog posts, Reddit threads, GitHub issues and IRC chatter, I have yet to come across anyone from the Rust community who hasn’t left their ego at the door. Every single Rustacean from the top down has been an ambassador for the language: eager to learn, eager to share, patient with beginners and deep-divers on the harder questions wherever possible.

2. Tell your community what is expected of them

Getting your language right with this is important, but enforcing some high-level rules makes for a healthy community. Be careful, micro-managing doesn’t do anyone any favours. These basic rules do though:

  • Respect our Code of Conduct
  • Constructive comments only
  • Chill out
  • Put your pride on the shelf

(taken from /r/rust‘s guidelines)

3. Have a clear starting point

This can be a book, a blog post series, or a “start here” forum thread depending on what your community is growing around. In the case of Rust, the official (open-source) book is considered the single best starting point for someone joining the community and is touted as such by the community.

Take the time to get this right. A comprehensive, up to date entry point will lower the barrier to entry considerably. Rust’s in-progress rewrite of the official book has some of the best technical writing I’ve come across. If you too are trying to build a community around a language, I’d encourage you to give it a read through.

4. Have a place for easy questions

/r/rust has two weekly threads, both of which really impressed me when I found them and both of which I’ll talk about.

The first one is a “Hey Rustaceans! Got an easy question? Ask here!” thread. Having this takes away any self-consciousness one might feel about asking simple questions as it’s specifically labelled for that purpose. It’s a small addition that can have a great impact.

5. Show that your community is active

The second weekly thread is “What’s everyone working on this week?”. It provides a place for users to share links to their own work and get and idea of what’s being worked on by others in the community. It also serves to show the outside world that your community is active, healthy and as such could be worth further investment in.

The basic rule of a good community seems to be “x fosters x”. If you are welcoming and helpful, your first users will be welcoming and helpful. When they in-turn interact with newcomers, the newcomers will be welcoming and helpful when their time comes to welcome new users because that’s how they themselves were treated, and so on.

There will be times when you’ll need to prune for the good of the plant (i.e. enforce your community guidelines) but I believe this approach will serve you well as you start to build a community of your own.