How To Create A Welcoming Space For New Open Source Contributors
Tags: opensource, beginners, community, leadership
Published: 2024-05-07 12:07:00

 **Table of contents:**
- [Welcome Home](#intro)
-  [Strategy #1: Have Clear Documentation](#strategy-one)
-  [Strategy #2: Show Appreciation](#strategy-two)
- [Strategy #3: Create clear contributions pathways](#strategy-three) 
- [Now It's Your Turn](#conclusion)


 <a id="intro"></a>


## Welcome Home 

When it comes to giving advice on creating a welcoming environment, the people in the Southern part of the United States said it best, “You attract more bees with honey than with vinegar.” In other words, kindness is the thing that keeps people interested and open source projects are no different. Contributors are the key to your project’s growth, so it’s important to create an experience and environment when they want and to continue contributing. In this blog post, I will share strategies that will help you retain contributors to your project.   

 <a id="strategy-one"></a>

## Strategy #1: Have Clear Documentation

Your README file, Contributing Guide, and tutorials are the key ingredients for your project; they provide all the necessary details and steps to understand and contribute to it. When they are missing information, chaos ensues. For example, when I was making my first contribution to the project, Deal for Devs, I pushed my commits to the project’s main branch because it is a common practice. When I spoke to the project’s owner, I realized that the commits should have been pushed to the dev branch to test it. So, I switched the branch from main to dev. Once that contribution was made, I added this direction to the project's README file:
{% github https://github.com/Learn-Build-Teach/deals-for-devs/pull/66 %}  

Now, to avoid challenges like this and to continuously improve your documentation, consider asking yourself the following questions:

- Is the Contributing Guide easy for beginners and people who are new to open source to understand?
- Is your project open to contributions from beginners? If not, create a kind but clear message to let them know. For example, "Although we appreciate all support, we're not able to take contributions from folks who are new to open source due to bandwidth at this time”
- What are some examples that can be added to the README to help people see the types of contributions they can make to the project?
- When was the project’s documentation last updated? 
If you want more tips on how to improve your project’s documentation, check out my @get_pieces article, “5 Tips For Writing Technical Documentation That Developers Love”.

{% link https://dev.to/getpieces/5-tips-for-writing-technical-documentation-that-developers-love-1ho7 %} 

 Now, having clear documentation is only one way to create a comfortable environment for contributors. Here’s another one.



 <a id="strategy-two"></a>

  

## Strategy #2: Show Appreciation
 

Between building your open source project, doing code reviews, promoting your project, and looking for people to contribute, finding time to thank each person for their contribution can be overwhelming. When I first started maintaining open source projects, I’d constantly stay up late at night giving thank you notes out of fear of contributors feeling ignored and underappreciated. As time went on, I realized that this method is not effective as it causes me to lose sleep, which makes it even harder for me to focus. Here are some strategies that I used and seen others use to make showing contributions recognition easier. 

- **Use GitHub’s Saved Replies feature:**  [This feature](https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/using-saved-replies) has been very helpful in thanking contributors for their work as all I have to do is pick a saved reply, modify it based on the type of contribution, and hit submit.  
- **Use a GitHub Action or bot:** I highly recommend using the [all-contributors bot](https://allcontributors.org/) because whenever someone makes a Pull Request to Deals for Dev, the bot automatically adds the person’s name and icon that exemplifies their contribution in the Contributing Guide. It makes giving recognition to people for their contributions a whole lot easier.
- **Write a thank you comment:** If you want to be more involved, consider writing a thank you message like @adiatiayu does for our pizza-verse repo: 

![a screenshot of Ayu's comment on a approved pull request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/924g6fjo8y2mw7stdl6t.png)

Regardless of the strategy you use, showing open source beginners appreciation can be the very thing that encourages them to continue contributing to the project. There is one more method to consider when creating a comfortable experience for new open source contributors.


<a id="strategy-three"></a>
 
## Strategy #3: Create clear contributions pathways

A reason why beginner-level open source contributors do not return to your project is because there is no clear path on other ways they can contribute once they make their first contribution. As good as it is to say in your README “we welcome all sorts of contributions,” there are moments where contributors continue working on “good first issues” due to this feeling of uncertainty. In my experience at LinksHub, I found that categorizing issues by difficulty and priority levels gives contributors an idea on how to grow in their journey as it encourages them to think if they are ready to solve the issues. At OpenSauced, the maintainers use “beginners-only” labels for issues that are catered to people who have never contributed to open source projects before. Once their Pull Request for this issue is merged, they are encouraged to solve issues that have the “good first issue” label. Additionally, good first issues contain the following reminder to encourage new contributors to continue growing their skills, “If you have already done a good first issue, consider working on a different one”.  To encourage even more growth, other repos people can contribute are mentioned in the activity section of their [Intro to Open Source course](https://intro.opensauced.pizza/#/intro-to-oss/how-to-contribute-to-open-source?id=let39s-get-practical).
   

<a id="conclusion"></a>

## Now It's Your Turn

Whether it’s creating a pathway, being receptive to feedback, sticking with your code of conduct, and showing appreciation, people are always going to remember how you made them feel when they first contributed to your open source project. If you’re looking to learn more ways to effectively maintain open source projects, check out the [New Maintainer Resources series](https://dev.to/bekahhw/series/25520).