How to find Open Source projects to contribute
Tags: opensource, beginners, github
Published: 2022-06-11 02:20:55

---
title: How to find Open Source projects to contribute
published: true
description: 
tags: opensource, beginner, github
canonical_url: https://isabelcosta.github.io/posts/how-to-find-open-source-projects/
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pydrg76k2eh3nzf78fww.png
# Use a ratio of 100:42 for best results.
---

I often get asked about how to find Open Source projects to contribute to. In this post, I’ll show you where you can find these projects. You can use these tips and adjust your search depending on what you are looking for in terms of the type of project you want to contribute to, the skills you want to practice, or the cause you want to support.


## Projects you already use

If you’re a developer, most likely you have encountered **libraries, frameworks, or programming languages that are open source**. In case you use packages from [NPM](https://www.npmjs.com/) in your projects, you can find on the package page the link to the project's source code. Take the example of the [react-kawai package](https://www.npmjs.com/package/react-kawaii) which points to the [miukimiu/react-kawaii](https://github.com/miukimiu/react-kawaii) GitHub repository. Same works for Python packages from [PyPI](https://pypi.org/). Take as an example [fastapi package](https://pypi.org/project/fastapi/) that points to [tiangolo/fastapi](https://github.com/tiangolo/fastapi) GitHub repository.

Some programming languages are developed in the open source community, where you can look up the source code, pull requests, and discussions around it. An example of this is [Python](https://www.python.org/) language where you can see [pull requests being merged into the source code](https://github.com/python/cpython/pulls?q=is%3Apr+is%3Aclosed).

Here are a few random projects I’ve used before which are open source:



* [fastapi](https://fastapi.tiangolo.com/), a web framework for building APIs with Python; 
* [python](https://www.python.org/), the programming language;
* [scala-exercises](https://www.scala-exercises.org/), website to learn how to code in Scala;
* [flask-jwt-extended](https://github.com/vimalloc/flask-jwt-extended), Flask extension that provides JSON Web Tokens (JWT) support;
* [forem](https://www.forem.com/), software for building communities which powers [dev.to](https://dev.to/);
* [jogo-das-profissoes](https://github.com/As-Raparigas-do-Codigo/jogo-das-profissoes), a Portuguese web-based memory game for children to learn about different professions;
* [Zulip](https://zulip.com/), a team collaboration tool that can be used for open source discussion forums.

You can look at the issue tracker of the projects’ source repositories and see if there are any issues you can work on.

Interacting with a project as an end-user gives you a great perspective to detect bugs or desirable features that other users of the project appreciate. So **you can even open an issue to report a bug or suggest a change to the project**, which if validated you can potentially be the one solving it. Keep in mind that reporting useful issues is already an open source contribution.

Now, I want to highlight that you may use a project in another role other than as a developer. For example, if you are using an end-user application (using a real-time chat app, like [Zulip](https://zulip.com/), to communicate with other people). You can still find the project source code repository, and contribute in many ways.


## Open Source initiatives

The way I got started with open source was via an initiative to incentivize people to contribute during December, [24 Pull Requests](https://24pullrequests.com/). I decided to make a first small contribution using Markdown, which you can check out at [FrancesCoronel/hire-me/pull/9](https://github.com/FrancesCoronel/hire-me/pull/9) on GitHub.

Later, I participated in another program called [Google Summer of Code](https://summerofcode.withgoogle.com/) (GSoC), which helped me learn a lot about contributing to open source. Participating in these programs, was the way I got involved with open source.

Some time ago I wrote about [open source programs and initiatives](https://isabelcosta.github.io/posts/open-source-initiatives/) such as [Google Summer of Code](https://summerofcode.withgoogle.com/), [Outreachy](https://www.outreachy.org/), and [Hacktoberfest](https://hacktoberfest.digitalocean.com/) among others.

For [Hacktoberfest](https://hacktoberfest.digitalocean.com/), you can find these projects mostly during October. Projects and issues participating will have the “Hacktoberfest” label. For [24 Pull Requests](https://24pullrequests.com/), you can find projects listed on the page while the program is active in December.

What I usually suggest with regards to finding open source projects, is to **look into organizations that have been participating in Google Summer of Code** and [Outreachy](https://www.outreachy.org/). Projects and organizations that participate in these programs tend to have a structure and clear guidelines on what work is available to be done so that the organization is prepared to receive participants and mentors during the program.

On the GSoC website, you can find recognizable names in the open source world, but also other organizations which were still eligible to participate. You can find organizations with very different types of projects, for example, projects related to hardware, applications for supporting social causes, developer tooling, security, etc… To get an idea, take a look at past accepted organizations that participated in GSoC [this year](https://summerofcode.withgoogle.com/) or in [2021](https://summerofcode.withgoogle.com/archive/2021/organizations), [2020](https://summerofcode.withgoogle.com/archive/2020/organizations), [2019](https://summerofcode.withgoogle.com/archive/2019/organizations), [2018](https://summerofcode.withgoogle.com/archive/2018/organizations), and so on.

Here are a few organizations that I saw on the organization list ranging in categories: [LibreHealth](https://librehealth.io/), [Postgres](https://www.postgresql.org/), [NumFOCUS](https://numfocus.org/), [Debian](https://www.debian.org/), [Open Food Facts](https://world.openfoodfacts.org/discover), and [The Tor Project](https://www.torproject.org/).


## Aggregators of projects and issues

Some websites aggregate open source projects or issues to make the process of finding projects to contribute easier. Some examples of these are [Up For Grabs](https://up-for-grabs.net/), [CodeTriage](https://www.codetriage.com/), [Ovio](https://ovio.org/), etc…

Sometimes you might also find repositories that contain only informational content, and some, in particular, will have a compilation of projects. For projects in the Portuguese community, there’s a nice collection of Portuguese open source projects at the [OldMetalmind/PortugueseOpenSourceProjects](https://github.com/OldMetalmind/PortugueseOpenSourceProjects) GitHub repository.

Additionally, you can find sometimes posts on the [dev.to community](https://dev.to/) where maintainers may be promoting their open source projects and specifically asking for contributors. 


## GitHub Explore

Another tool that can be useful to know, is the [GitHub Explore](https://github.com/explore) feature that can highlight projects that can suit your skills. You can find projects grouped in [collections](https://github.com/collections) or [topics](https://github.com/topics), or that are [trending](https://github.com/trending).

Some **Collections** that I noticed are [government apps](https://github.com/collections/government), [made in Brazil](https://github.com/collections/made-in-brazil), [getting started with machine learning](https://github.com/collections/machine-learning), [made in Africa](https://github.com/collections/made-in-africa), …

**Topics** are like tags, which can be useful to find projects related to a specific tool, programming language, or type of project. Topics are usually explicitly set on a repository by the maintainer. During Hacktoberfest maintainers will add the [Hacktoberfest topic](https://github.com/topics/hacktoberfest) to their projects to indicate they’re participating in the event. As an example, to find repositories with the Python topic you can go to [github.com/topics/python](https://github.com/topics/python).


## Now that you know where to find them…

Be aware that once you find a project you’d like to contribute to, it’s possible the **project is no longer being actively maintained**. So even if you wish to contribute directly to it, there may be no maintainers to accept your contribution.

To understand if a **project is active**, check **if there are recent conversations in issues** and pull requests or commits to the main default branch. You can also look for any notice of the project no longer being maintained. Maintainers tend to leave a statement in the README or an issue, or even archive the repository if they are no longer maintaining the project.

When you decide which project to contribute to, **make sure to read the Contribution Guidelines and Code of Conduct** to interact with the project, the maintainer, and the project’s community in the way that is expected. This will make both your life as a contributor and the maintainer’s life easier. Also look for beginner-friendly labels, such as, “Good First Issue” or “First Timers Only” that are meant to help people find the first issues to contribute.

Another piece of advice I have is, that if you are just starting to contribute to open source, it **can be easier to contribute to less popular projects**, that may have less noise around issues and pull requests and the maintainer may be able to give you more attention. In any case, you can still look at popular projects that could have issues with the beginner-friendly labels I mentioned above. Although because of its popularity, it can be hard to contribute.

Know that you can find an open source in a lot of places such as GitHub, and GitLab, however for certain projects, the organizations that maintain it keep the source code hosted using their infrastructure. An example of this is the Android open source project which you can find [here](https://source.android.com/).

****

I hope this helped give you an idea of how to find open source projects! Often when I contribute to projects that I’m not the maintainer of, it’s because I stumbled on a problem in a project, that I knew how to solve and noticed no one had reported yet.