You might be wondering why you would want to become an open source maintainer.

Well, I can tell you from my own experience that you'll learn a lot, grow your network, and meet and collaborate with people you wouldn’t have the opportunity to otherwise.

It also helps you to get a deeper understanding of the open source ecosystem – which is increasingly important, as 90% of companies use open source according to the 2022 Octoverse report.

You can see why others enjoy being a maintainer by checking out this post from GitHub education.

To be an open source maintainer means that you’re responsible for the project. You define its goals, work with contributors, and make decisions about the development and growth of the project.

Since it's your project, you can create something that’s interesting, fun, or solves a pain point in your life. Remember, it should be something you want to work on.  

How to Become an Open Source Maintainer

Becoming an open source maintainer can be a really rewarding experience that allows you to grow with a community of people.

Being a maintainer means that you create a public repository on the repository hosting platform of your choice (like GitHub), and you invite others to contribute to the project.

But before we learn more about the steps to do that, let’s explore what it means to be an open source maintainer.

What Does an Open Source Maintainer Do?

An open source maintainer is responsible for overseeing the development and growth of an open source project. This could involve:

  • Creating a clear process and documentation for contributors
  • Reviewing and merging pull requests
  • Managing issues and feature requests
  • Writing and maintaining documentation
  • Ensuring code quality and project consistency
  • Engaging with the community and encouraging contributions

Open source maintainers perform a lot of roles, so it’s helpful to come into the project with an understanding of your strengths and weaknesses and a willingness to grow.

Support Your Project's Contributors

Before becoming a maintainer, you should understand the open source ecosystem and how to contribute to a project. Once you’ve explored some projects, you should recognize that there are valuable paths for your own contributors.

Some good ways to support your contributors include:

Create Clear Documentation

Improving existing documentation or creating new guides to help others understand the project can be a really valuable way to get people involved in your project.

This should start with your own documentation. Make sure you have a clear README and Contribution Guidelines. Let the contributors know how they can contribute, the process for getting assigned issues and submitting Pull Requests (PRs), and the best way to communicate with you.

Call Out Good First Issues

Create open issues labeled "good first issue" or "beginner-friendly" to indicate to your contributors that folks who are new to open source can start here. This could include writing documentation, making updates, fixing bugs, and more. Just make sure that you clearly write the steps for completing the issue.

Give Constructive Feedback

Offer timely, specific, and helpful feedback on contributions to help your contributors learn and grow.

Recognize Your Contributors

Recognition is not only a great motivator, but it shows appreciation to your contributors. Thank them on social media, in a blogpost, or in some other meaningful way.

Create a Welcoming Environment

Create a supportive environment for your contributors by always being respectful in your communication and including a Code of Conduct in your repository.

Provide Your Contributors with Opportunities

You can’t have contributors if you don’t provide them with opportunities. So what types of tasks can they do? While this will ultimately depend on the needs of your project, here are some common ways for contributors to support your project:

  • Submitting Pull Requests: They can contribute code, documentation, or other improvements to address open issues for the project. Consider adding a PR template to make the process easier for everyone.
  • Writing Issues: Contributors can identify and document bugs, create feature requests, or give you feedback on your project. Adding issue templates makes creating issues easier for both you and your contributors.
  • Writing Documentation: Adding to existing documentation or creating guides, tutorials, and or blog posts to help users and contributors understand the project can be a good way to get non-code contributions and to extend awareness of your project.
  • Providing Support: Having contributors help each other is a great way to strengthen your community and to take pressure off of you as the maintainer. They can answer questions, offer guidance, and help troubleshoot problems. They can also share their experiences and provide feedback to other contributors.
  • Reviewing Code: Checking out pull requests and providing feedback on the submission is another great way to provide support. If you have a specific way of reviewing code, include that in your documentation to empower others to be able to do it as well.

Engage with the Community

Building relationships with your contributors is a great way to support the community, recognize their impact, and to help grow your project.

You can do this by:

  • Joining Discussions: Participate in issue discussions, pull request reviews, and community forums.
  • Providing Support: Answer questions, provide resources, and help new contributors find their way.
  • Creating Meetings: You don’t have to do this, but it’s a good way to create engagement and provide support for your contributors, especially in the early days of your project.

Being active and supportive in your community can also help to build your reputation as a maintainer.

Learn and Adapt

Once you become a maintainer, the learning doesn't stop. You can improve your skills and adapt to new challenges by:

  • Understanding Your Community: Hanging out with your community is a great way to understand your project through their perspective. It also strengthens your relationship with them and provides more opportunities to grow.
  • Seeking Feedback: Regularly seek feedback from your contributors to improve your work or learn how they understand your project.
  • Learning from Others: I truly believe that we all can learn from each other, no matter what stage of our journey we’re on. Look at how your community members write issues and pull requests, communicate with each other, and provide feedback.

Being a maintainer is a continuous learning journey, and the more practice you get and the knowledge you seek, the better you’ll get at it.

How to Setup Your Open Source Project

There are some key components to include when setting up your project.

Create a README

A README file introduces your project, provides setup instructions, images, code examples, and links to essential resources, and is the first impression you give to your contributors.

Here are some things you should include in your README:

  • Project title and summary
  • Brief setup instructions
  • Images of the app and code examples
  • Technologies and tools used
  • Links to contributing guidelines, code of conduct, open source license, and community channels (Discord, Slack, GitHub Discussions)

Create an Installation Guide

If your project requires running code, this guide should include step-by-step instructions for forking, cloning, installing dependencies, setting up environment variables and databases, and running the project locally so new contributors can quickly get started.

Details should include:

  • Forking the repository
  • Cloning the repository
  • Installing dependencies
  • Setting up environment variables and database (if applicable)
  • Running the project locally

Have an Open Source Software License

An open source license gives legal permissions for others to use, distribute, and contribute to your project. There are many different types of licenses, and choosing the right one depends on your needs. The MIT license is a popular one on GitHub.

Create a Code of Conduct

A code of conduct is important for keeping your community safe and supportive. It outlines acceptable behaviors, consequences for violations, and how to create a welcoming environment for all contributors.

Some things it might include:

  • Pledge: Establishes a welcoming environment
  • Standards: Acceptable and unacceptable behaviors
  • Enforcement: Consequences for violations

As an example, here's freeCodeCamp's code of conduct.

Write Up Some Contributing Guidelines

These guidelines help contributors understand how to get involved, including instructions for setting up the project, reporting issues, creating pull requests, and how to communicate with maintainers.

They should include:

  • Project setup instructions
  • Guidelines for creating issues and pull requests
  • Commit and style conventions
  • Communication pathways, including links to discord, discussion boards, or other spaces for community interaction.

Takeaways

Becoming a maintainer can be a great learning experience. You don’t ever have to get it perfect, but if you treat people with respect, create clear lines of communication, and consider it a journey you’re taking together, you’ll be providing with really unique opportunities for growing and finding a community.

If you're ready to take the next step and want a comprehensive course to help you navigate the journey, check out OpenSauced’s Introduction to Maintainer Course. This course will provide you with an in-depth understanding of what it means to be a maintainer, provide you with guides to make the experience good for you and your contributors, and walk you through how to get started today.