Opensource.com asked readers a few months ago: What's the biggest barrier to participation in open source? Answers from 56% of poll takers was that they aren't sure where to start. And, 13% said they are uncomfortable jumping in.
If you feel the same way, this post is for you.
To help navigate your first open source contribution, I've put together a list of what I think are the most beginner-friendly open source starting points, as well as, a few other helpful resources. To make sure the list contains well-maintained projects, I've only included projects with over 1,000 stars on GitHub (unless otherwise stated).
Contributor Covenant is a code of conduct for open source projects. By signing this code of conduct, the founders of the projects pledge to allow anyone to contribute to their project, regardless of "level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality."
Although this project has less than 1,000 stars on GitHub, its popularity shows by the more than 10,000 open source project maintainers who have signed the pledge, including Swift, Atom, AngularJS, RVM, Mozilla Webmaker, and the .NET Foundation. Contributor Covenant maintainers are currently looking for non-native English speakers willing to translate the pledge into other languages. If this sounds interesting to you, head over to this GitHub issue.
DuckDuckGo's Instant Answers
For those of you who have never heard of it, DuckDuckGo is a privacy-conscious search engine that doesn't track users. Instant Answers is a feature that provides answers without needing to open up a website.
Hundreds of people have already contributed to their instant answers, and there are plenty more suggestions on their ideas page.
DuckDuckGo offers good documentation to get you started and to recommend new users by creating cheat sheets. If you want to know what DuckDuckGo cheat sheets look like, just go to their website and type in "WordPress cheat sheet" to see the cheat sheet I developed as an example. If you get stuck, you can join their Slack channel and check out their wiki on GitHub.
Habitica is an app that lets users gamify real-life choices and activity with in-app rewards and punishments. If you want to help this team develop a fun way of building good habits, head over to their GitHub repository and take a look at the issues marked with the "entry-level coding" label.
There's no doubt that Mozilla is one of the leading organizations in the world of open source. Contributing to Mozilla projects may not look easy at first glance—maintainers label beginner-friendly issues appropriately, but they're hard to find because there are so many of them. Luckily, Josh Matthews has created a simple website called Bugs Ahoy that allows you to search through all of Mozilla's bug reports to filter them to find the ones that are most relevant to your areas of interest.
Don't forget to check the simple bugs filter all the way at the bottom of the filter section!
Pinax is an open source platform built on the Django Web Framework. It is an ecosystem of reusable Django apps, themes, and starter project templates. On their GitHub project page, they label easy issues with the first-timers-only label. Then, they have carefully documented each one so that you know what you should be doing.
Find more beginner-friendly projects
- Labels: Search your code repository of choise for specific labels identifying projects that have easy-to-fix issues
- Lists: Copy and paste a couple of rows and add the relevant information about the thing you're adding to this list
- Resources: A few of my favorites are...
@yourfirstpr: a Twitter profile that's constantly updated with the latest beginner-friendly issues
OpenHatch: to connect developers with open source projects that need user contributions
Up For Grabs: a list of projects which have curated tasks specifically for new contributors
In the world of open source software, issues get reported and fixed pretty quickly. So, if you want to take on an issue, be sure to try to work on it in a timely manner.