How to Mentor New Open Source Contributors
Tags: opensource, github
Published: 2023-08-16 18:11:03

As an open source maintainer, contributors are one of the most important ways to scale up the goals you want to achieve in an open source project, along with scaling down the amount of work you have to do as a maintainer. This post provides a few tips on mentoring new contributors to your project, and continuing someone's open source journey.

## Embracing Early Interactions

New contributors to a project have a fresh perspective on how to contribute. They may run into paper cuts getting the environment set up, and little nuances about contributing that you have long moved into muscle memory. Mentoring new contributors involves answering those little details that help them in the long run. Not every contributor is familiar with using Git commands, using the terminal, or running the test suites. 

To help a new contributor, you must put yourself in their shoes and go back to when you were contributing to a new project. Going over the contributing documentation is one way to do this, but being more explanatory on certain terms goes a long way with new contributors. 

By helping them learn the ins and outs of your project, it can help in at least a couple of ways. It provides them more contribution opportunities through updates to documentation, smooth over the rough edges to contributing so it becomes easier for the next person, and becoming more familiar with the codebase.

## Providing Guide Rails

By providing some measures in place for new contributors to thrive, you can ensure you get steady contributions that maintain a certain level of quality. It doesn't mean you need to nitpick on pull requests to teach lessons. There are things in place in your project to help contributors and yourself to save time.

![Issue template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9llq3hkx2md2afstbl71.png)

Guides include:

- Onboarding and contributing documentation
- Issue templates
- Pull request templates

Tools such as:

- ESLint for automated lint checks and fixes.
- Prettier for automated code formatting.
- GitHub Actions for automated builds and tests.

These are just a few tools that help developers adhere to the standards set by the project without new contributors having to learn them all upfront. 

## Giving Trust and Gauging Interest

Contributors of today can eventually become maintainers one day. There will be some contributors who come in to drop a pull request once and you never see them again. Then there are contributors who stick around because they are genuinely interested in the success of your project, and it may be mutually beneficial for them also.

Giving more trust to new contributors can come in the form of invitations to private Slack/Discord channels for more focused discussion, providing more guidance on pull requests on historical decisions that were made on the project, and continuing to teach how to look at the project from a different perspective. 

Having a contributor stick around long enough could turn into someone you invite to contribute more directly as a co-maintainer. The mentorship doesn't end there, as you'll still be answering questions on the overall vision for the project, and how you plan to get there [as a team](https://dev.to/opensauced/what-does-an-open-source-triage-team-do-2egd).

![Adding Marko as Core Contributor to NgRx](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b3xl03szjfmey6wk371m.png)

## Recognizing Contributions

There are many ways to recognize contributions outside of GitHub repositories. Tools such as [All Contributors](https://allcontributors.org) provide a common way to recognize many different types of contributions, from code, to docs, and more. Contributions can also be recognized in the form of shoutouts on social media, upgraded roles on Discord or Slack channels, and access to internal chats for more focused conversations. These external interactions go a long way in building community and engagement around your project and encourage future contributors to come onboard.

Mentoring new contributors helps to build an ecosystem and community around an open source project. Whether it be helping explain new topics, improving onboarding, or recognizing contributions, all help contributors along their open source journey. These were a few ways you can help new and experience contributors get involved and grow an open source project together.