All posts

Making open source accessible

I'm been dabbling in open source for most of my professional career, but only in the last year or so would I consider myself a 'maintainer'. By which I mean there's a project I care deeply about, and want to create and sustain a community around (hint - it's Piccolo!).

I've made a bunch of mistakes along the way, and am still learning. But I've realised some things about making a project friendlier to contributors, which is what this article will be about.

Make a useful project

A prerequisite is having a project which is useful, and well documented. If someone isn't intrigued by your project as a user, they are very unlikely to want to contribute. So get the basics in place for your users first.

Contributing docs

There needs to be somewhere that contributors can read about what's expected. This can be a CONTRIBUTING.md file in your GitHub repo, or a section in your docs.

I recently put a lot of effort into updating the CONTRIBUTING.md file for Piccolo. You can see it here. It covers many aspects of contributing, such as:

  • Which tasks are most appropriate to newcomers
  • What makes a good pull request
  • How soon to expect a code review

Create tasks for new contributors

In GitHub you can add tags to your tasks. There's one called good first issue. It's worth putting in some effort, and creating tasks especially for newcomers.

These tasks should be nicely self contained, and not require extensive knowledge of the code base. However, they should also be meaningful, and not just tedious admin tasks.

Be helpful

Creating a pull request can be daunting. Let's be honest, Git isn't the easiest thing to master, and learning a new codebase can be intimidating. Be as helpful as possible to new contributors.

Spread the word

There are programs such as Hacktoberfest, and Google Summer of Code. Hacktoberfest is very easy to get involved with (you just add the hacktoberfest label to your project). Google Summer of Code is much more involved.

Resources

Posted on: 13 Oct 2021

Have any comments or feedback on this post? Chat with us on GitHub.