id | title | sidebar_label | keywords | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
building-community |
Building and Nurturing a Welcoming and Supportive Community |
Building and Nurturing Community |
|
Open source is more than just maintaining and improving a project. It's a dynamic environment where maintainers, contributors, and users come together to collaborate, contribute, and grow. That said, the people involved in the project are the core and heart of open source.
As more people engage and contribute to your projects, it becomes crucial for you to provide them with the necessary support and motivation to establish a welcoming and positive open source community environment. Doing so can build stronger relationships and promote a sense of belonging among your community members, keeping them returning and remaining dedicated.
In this chapter, you will learn how to build and nurture a welcoming and supportive open source community.
There are many types of people when talking about engagements in a community. Some are actively engaging, some come and go, and some are lurkers. But one thing is sure: everyone has the same interest (your project), and they bring value to your project. You always want to ensure everyone feels welcomed, included, and, most importantly, safe in your community. One key to achieving this is fostering a positive community culture.
Successful open source communities encourage open communication. Open communication allows everyone to understand what's happening around the project and community, helps build trust, and increases healthy collaboration. Everyone should feel comfortable expressing thoughts and ideas, but at the same time, they should be able to listen and respectfully respond to others. For tips about communication and collaboration, read the chapter "How to Communicate and Collaborate Effectively."
Creating a safe and welcoming community environment involves prioritizing inclusion and promoting diversity. Inclusion means treating everyone with value, regardless of background, beliefs, or opinions. By fostering a culture where everyone is encouraged to be authentic while appreciating others, you can nurture a community where everyone feels respected and valued. Building a community where everyone feels they belong is the most important thing.
Every project should have a code of conduct as a clear set of guidelines for how members within the open source community should behave and treat each other. You can, for example, emphasize the importance of using positive and inclusive language, treating others with respect, and avoiding discrimination or harassment. Inform them of the consequences they may face if they do not follow the guidelines. A code of conduct helps to prevent conflicts, promotes respect, and ensures that everyone in the community feels safe and comfortable. You can read the "Code of Conduct" section in the "How to Setup Your Open Source Project" chapter to create one.
Imagine seeing a member behave disrespectfully towards another member on GitHub or Discord, or receiving an incident report from a member saying someone harassed them. Unfortunately, most open source communities will have to address conflicts at some point. Being prepared to do so will help to maintain a positive culture. You can learn more about managing conflicts in the "Handling Difficult Situations" section in the "How to Communicate and Collaborate Effectively" chapter.
Leadership is not about being in charge. It's about taking responsibility and setting an example for others to follow. You want to demonstrate positive behavior, be respectful to others, and be willing to listen and learn. Doing so will encourage others to follow your example.
Recognition is the key to unlocking the full potential of the open source community. Expressing gratitude and kindness towards others — in this case, your team and contributors — is fundamental to creating a supportive and positive community culture.
Contributions to open source come in all shapes and sizes. You want to take a moment to recognize and track these invaluable contributions. Appreciating contributions can be made in many ways, such as through awards or rewards, public recognition, or even just acknowledging their contributions and efforts. One way to recognize and appreciate your contributors is by installing the All Contributors bot in your project to automate adding project contributors.
At OpenSauced, we recognize that contributions aren't just green squares and appreciate all kinds of contributions that have made our projects and community thrive. That's why, besides having the All Contributors installed in our guestbook repository, we enjoy recognizing and giving shoutouts to our contributors through our monthly live stream, blog posts, newsletter, and social media.
Remember that recognizing and appreciating contributions can create a ripple effect throughout the community, inspiring others to do the same and increasing positivity.
In an open source environment, people want to make meaningful contributions and be part of the community. If you want to see return contributors, you need to create the space and opportunities to encourage them to return and contribute more. In this section, we will discuss how to create opportunities for contributions.
To create opportunities, you need first to identify contributors' entry points.
They are generally new to open source or someone new to your project. This type of contributor usually still needs hand-holding and guidance. So, you want to be able to point them to resources about the flow of open source and how to use Git and GitHub. Consider having clear and updated project documentation for them to refer to.
Intermediate contributors have some experience in open source but want to go deeper in their engagement and contributions. They usually don't need hand-holding and can understand how to work with your project by reading the documentation or finding resources independently. On this level, they might want to grow their skills and network and be interested in becoming a maintainer.
They are seasoned open source contributors who can contribute at a high level and potentially lead projects. At this level, they can give ideas and contribute to enhancing your project outside the box because they enjoy using it. Whenever they encounter bugs, they want to fix them quickly so they can still use your project and implement it on their projects.
You want to create a space that welcomes diverse contributions, regardless of contributors' coding skills, for the success of your projects. By encouraging both coding and non-coding contributions, you can ensure everyone can participate and contribute their unique skills and perspectives. However, you also need to consider the amount of support you can give them if they need it.
After identifying their entry points, consider creating issues for all levels of contributors. Good first issues are usually for beginners in open source and someone new to your project. When creating a good first issue
, think of providing suggested solutions, the lines of code that cause the issue, and resources to help them work on it. For contributors who don't need extra support, you can create an issue with beginners
or help wanted
labels based on the complexity.
You might add new features or change some things in your projects. That's one reason you want to always keep your documentation up to date: to reflect on the current state of your project.
You can create issues to improve the documentation or encourage your community to create tutorials and how-to guides.
As your community grows, engaging with each member becomes increasingly challenging. To manage your community effectively, having people who can facilitate interactions between members and provide timely responses will be helpful.
You can encourage community members to contribute by engaging in online forums and chat apps. They can help answer questions, share insights, and provide support. This not only helps to build a sense of community around your project but also helps to foster a culture of collaboration and mutual support.
Some of your contributors may have skills that can be useful to promote your project and organization, such as writing or public speaking. You can motivate them to get involved by encouraging them to write blog posts and create educational content related to your project. They can also speak at conferences or give workshops if they want to. Posting or reposting information about your project on social media is another way to contribute. At OpenSauced, we encourage our community to write blog posts under our organization on Dev.to.
Issue management involves identifying, analyzing, and prioritizing bug issues and feature requests during development. You can create a triage team and encourage your community to help you triage and prioritize the issues in your repositories. You want to equip them with a clear guide on managing issues like what we have at OpenSauced in our Triage Guide. You can also read this article to learn more about issue management.
At OpenSauced, we organize the #100DaysOfOSS challenge to encourage contributors of all technical backgrounds to immerse themselves in collaborative development and engage with a supportive community.
Organizing community events and hackathons is one way to strengthen your community's collaboration and relationships. You can create a survey or poll to gather feedback on what events your community wants to see. Then, consider forming a committee or group of members interested in organizing the events and letting them take charge with your support. By allowing your members to get involved and contribute, you can increase the sense of community and belonging.
After you have created opportunities for people to contribute to your project, it's important to keep track of which contributors keep coming back and consistently producing quality work. These contributors have the potential to become core members of your community, and you want to foster their growth and development within your project.
By building a core group of community members, you can ensure that your project can continue to grow and evolve even after maintainers move on to other projects. These core members can help to onboard new contributors, share knowledge and expertise, and provide continuity in the project's development.
To foster the growth of these new talents, you can provide them with mentorship, feedback, and opportunities for leadership roles within the project. Investing in these contributors can build a solid and sustainable community to help your project thrive over the long term.
You can utilize OpenSauced Repository Insights and Contributor Insights features to identify new talents by tracking active project contributors.
You can list the projects you maintain on a Repository Insights Page. This feature allows you to monitor your projects' activity and identify contributors who actively contribute to and impact them.
You can find more information about your contributors in the Contributors dashboard. It allows you to view their activity level, the date of their last contribution, and the number of contributions. It also gives you information on their time zone and the languages they use most. Learn more about Repository Insights for maintainers and how to create one on OpenSauced Docs.
After identifying potential new talents for your projects, you can select and add them to the list of a new or existing Contributor Insights Page. This feature enables you to monitor and analyze your contributors' activity levels and contributions more deeply, such as tracking the number of commits and pull requests they have made. You can read more about Contributor Insights for maintainers and how to create one on OpenSauced Docs.
Open source is a journey of learning, growth, and opportunity. So, building and nurturing a welcoming and supportive community is crucial for long-term success.
A positive community culture that encourages diverse contributions and fosters new talents can help you attract and retain top talent, stimulate innovation, and increase productivity. By creating a supportive environment where people feel valued, respected, and empowered to share their ideas, you can unlock the full potential of your contributors and achieve your goals.
However, building a positive community culture is not a one-time task; it requires continuous effort and commitment from everyone involved. You must invest in promoting diversity and inclusion, encouraging collaboration and teamwork, and fostering a sense of belonging. Doing so can create a culture of trust and respect that enables your community and projects to thrive. In short, building and nurturing a welcoming and supportive community is the right thing to do and a great strategy to help your project and your community succeed.
In the next chapter, we will discuss tools and features on GitHub that can help save maintainers time.