Top tips for creating a healthy and sustainable open source community
Tags: github, opensource, tutorial
Published: 2022-02-05 01:27:58


One of the questions we are often asked is "how do I create a community?" But even deeper that: "how do I create a sustainable, healthy, and welcoming open source community?"

Each year, we release the [State of a Octoverse](https://octoverse.github.com/); a round up of the top open source projects, languages, stats, and more.

## What makes a sustainable open source community?

From our research in 2021, we discovered six key themes that were characteristic of top, successful, and sustainable open source projects. Here's a brief overview of each theme.

### Have a README

A README is so important for telling potential contributors what your project is about. READMEs also share information such as an overview of the community, links to other documentation, and how to get involved in the community.

According to our 2021 findings, 14.1% of open source projects still do not have a README file. Those repos with READMEs are 55% more productive than those without. This is because they provide all the necessary information at developers' fingertips.

![GitHub README Stats](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jenpn5yk9y0uwcul3lxm.JPG) 

In 2021, we released Organisational Profile READMEs. This meant open source projects can now highlight who they are as a community. Having an Organisation Profile README can give your community an overview of the types of projects your organisation works on, and the type of community you are building.

If you haven't built your Org Profile README, check out our tutorial: 

{% link https://dev.to/github/how-to-create-a-profile-readme-for-your-organisation-g2 %}

Your README shouldn't replace the need to have a website. You should have a website explaining the project. This is helpful to both developers and non-developers and helps make your project discoverable across the web. A website is also super helpful for housing your documentation, videos, links to socials, and in particular, demos of your product.

### Have good-first-issues

As a new developer coming to a project, it's often hard to figure out what to work on and where to provide value. This is where `good-first-issues` comes in handy. Good-first-issues are issues tagged by maintainers as being good issues to work on as a new contributor.

According to Nick Young, the maintainer of Project Contour, `good-first-issues` are issues that any one of the maintainers could easily complete. During our interview with Young, he says the reason for this is ensuring maintainers can actually help the people who come to the project, and provide something to dip their toes into the water.

{% link https://dev.to/github/good-first-issues-how-to-get-contributors-to-your-project-2c7f %}

As a maintainer, you should make an effort to tag relevant issues with the `good-first-issue` label. It's a default label in all repos, and will encourage contributions.

{% youtube k3l_rurKOXg %}

### Have good Contribution Guidelines

Speaking of encouraging contributions, you should ensure you have good contribution guidelines for your project. Contribution guidelines help "elevate the quality" of your project and "share information that makes them more attractive to new contributors".

According to our [State of the Octoverse](https://octoverse.github.com/creating-documentation/#contribution-guidelines), contribution guidelines help with ambiguity and friction when working with open source projects.

The guidelines act as a "rules of engagement" when developers are coming to contributing to the project. According to the report, there are still over 65,000 open source repositories without any contribution guidelines. Those with contribution guidelines are also 17% more productive than those without.

![OS Contribution Guidelines](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/makf7a789ie22na6m0py.JPG)

Contribution guidelines outline various rules of engagement with the project, such as how to get started, when to submit an issue, how to submit a pull request, and more. 

### Have a Code of Conduct

Contribution Guidelines help to define how to contribute code to the project. A Code of Conduct helps define how people should act and engage with other people on the project. They are really important for ensuring your community behaves in a respectful, meaningful, and impactful manner.

According to [our report](https://octoverse.github.com/sustainable-communities/#safe-and-welcoming-communities), the majority of open source repositories still do not have a Code of Conduct.

![Code of Conduct](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9phzozs40n8r5ihxz0pi.JPG)

There are lots of different Code of Conducts you can use as a guide to help you build the one that's right for your community. Some of the information contained in the [GitHub Event Code of Conduct](https://docs.github.com/en/github/site-policy/github-event-code-of-conduct) can be applicable to your open source community. Microsoft has a really good [Code of Conduct pertaining to their open source communities](https://opensource.microsoft.com/codeofconduct/).

There's also the Code of Conduct released on the [opensource.guide website](https://opensource.guide/code-of-conduct/), which contains other useful information. Finally, there's the [Contributor Code of Conduct](https://www.contributor-covenant.org/) that you can use for your open source project.

Ensuring you have a Code of Conduct will encourage welcoming and courteous engagement with your open source project.

{% youtube AAYoJnyJ-RY %}

### Commit to mentorship

One of the best things about open source, is the networking and experience you create by being part of the community. As a maintainer, you need to understand not all developers are as well versed as you.

By maintaining an open source project, you should agree to help mentor and guide contributors. Not only will this make better developers and therefore lead to higher quality code on your project, it will also encourage up and coming developers to take on core contributor and maintainer roles. All this contributes to the overall sustainability of your project.

![Fun and learning in open source](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59cgdrolmpz7kog3r0oz.JPG) 

Projects that foster mentorship have long-lasting benefits for productivity, satisfaction, and retention. Communities with a mentorship mentality also lead to better collaboration.

According to Paul Copplestone from Supabase, mentors should be able to teach you not just about the project, but about the coding language. He says anyone who wants to learn Postgres for example, should contribute to Supabase as he and the other maintainers are committed to teaching developers.

{% link https://dev.to/github/get-involved-in-open-source-because-the-maintainers-will-help-you-2d8n %}

### Encourage respectful language in GitHub Discussions

Finally, whilst you might have a good Code of Conduct, contribution guidelines, and an epic README, none of that is worth anything if your conversations have dissolved into conflict.

"Respectful language in GitHub Discussions signal a community is safe, welcoming, and trusted." Communities that have good conversations in GitHub Discussions are more likely to be productive and attract good contributors.

As a maintainer, it's not just up to you to maintain the code, but you need to maintain the health of your community. Pull the ban hammer on disrespectful conversation, encourage healthy debate, and continue to respond to questions.

This will help contribute to a trustworthy, respectful, and sustainable open source community.

{% youtube bl_xU7rSAvc %}

## State of the Octoverse

If you'd like to read more about the themes mentioned above, and other findings, check out the [2021 State of the Octoverse](https://octoverse.github.com/).

We'll be sharing more indepth information on each of these key themes. Keep an eye out for more.