How to find 🔎 an Open Source project to contribute to
Tags: opensource, beginners, programming, tutorial
Published: 2022-08-23 14:56:00

_You can find a [video version](https://youtu.be/yfopPq4354o) of this article on my [YouTube Channel](https://www.youtube.com/channel/UC-KqnO3ez7vF-kyIQ_22rdA)._

- [Introduction](#introduction)
- [Opensource Guide](#opensource-guide)
- [Known projects](#known-projects)
- [Good First Issue & Help Wanted](#good-first-issue---help-wanted)
- [How to contribute](#how-to-contribute)

{% embed https://youtu.be/yfopPq4354o %}

## Introduction

Welcome! You clicked on this post because you want to contribute to Open Source, but you need some help in finding the right project, correct? Keep reading for a few minutes and you'll get some insights that will probably help you a little bit 😉

A common obstacle to overcome is finding the right project but don’t worry, happens to most of us. Everything that comes to your mind is either a huge project and you have no idea where to begin, or some dead projects without a maintainer or guidance on how to help.

## Opensource Guide

The first step is looking at this cool resource called [opensource.guide](https://opensource.guide/)

The name is pretty much self explanatory, this website will introduce you the main principles of the Open Source world. Don’t expect to immediately become an expert, there are a lot of concepts to understand and it will take time.

Read carefully the content here as it will provide you with a useful insight that you will find handy, to move quicker throughout the following steps.

In case you’re still wondering why you should contribute, there are plenty of benefits and good reasons, so many that I actually made [an entire video](https://youtu.be/uquIcISFtwg) on that.

## Known projects

Once you’ve got some good motivation and you understood the basics, I suppose you want to get started but you have no idea where to begin.

Finding a valid project to contribute to might be quite difficult, that’s why I want to help you with some advices based on my own experience.

The best way, at least for me, is to think about the software you already use on a daily basis. Open up `package.json` or the dependency list of the projects you’re working at and you will find some amazing hints.

Some of the software you use everyday or the websites you visit might be Open Source as well, try to find the GitHub logo somewhere or directly do a quick search on GitHub itself.

In my case, I use `vscode` as editor and I found reasonable to put that project in the list of potential repositories to contribute at.

## Good First Issue & Help Wanted

A common way to find a project, potentially one that you don’t even know, is by going backward and searching from issues rather than from projects directly.

Maintainers looking for contributors usually add labels to some issues to manifest their interest in having public contributions. The most used lables are `good first issue`, `help wanted` and `up for grabs`.

If you already have a project in mind, look carefully at issues with those lables.

In case you still need a project, there are some services that use lables on issues to collect repositories.

Some of the most known are:
* https://www.firsttimersonly.com/
* https://goodfirstissue.dev/
* https://goodfirstissues.com/
* https://up-for-grabs.net/
* https://www.libhunt.com/topic/good-first-issue
* https://project-awesome.org/MunGell/awesome-for-beginners

Those services usually give you some extra insights such as the amount of open issues and also let you filter by language, for example Typescript or Python.

To be honest I’m not a fan of this approach as I think you need a deep knowledge of the project before writing some code for it. Anyway, those websites are quite common so I wanted to mention it. Maybe they will work well for you!

## How to contribute

Once you found a project that feels right for you, there are still a few steps to take before being 100% able to contribute effectively, for example finding the right issue that addresses a specific change to apply in the code. I'm writing the script of a video specifically on this topic that I'll post on my [YouTube Channel](https://www.youtube.com/channel/UC-KqnO3ez7vF-kyIQ_22rdA). Feel free to add a comment here if you have some extra advices and I'll include them!


If you're still unsure on how the PR mechanism works and you want to see a quick guide on that, you can read my other article:


{% embed https://dev.to/this-is-learning/how-to-create-your-first-pull-request-on-github-in-less-than-60-seconds--1ae6 %}


Do you have some advices for other developers at the beginning of their Open Source journey? Write a comment here and let’s share some knowledge, thank you very much!


---
Thanks for reading this post, I hope you find it interesting!

{% embed https://dev.to/balastrong %}

You can also follow me on your favourite platform!

|Tweets|Videos|
|:-:|:-:|
|[![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/Balastrong)|[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/channel/UC-KqnO3ez7vF-kyIQ_22rdA?sub_confirmation=1)|