Identify Where You Can Help
In this unit, we will discuss how you can start contributing to open source projects.
We will also use issues and tags to find tasks to contribute to.
Open source software can be freely used, modified, and shared by anyone.
Thanks to open source software, anyone can view, modify, and distribute a project for any purpose.
The idea behind open source software is that sharing code leads to better and more reliable software.
There are many ways to contribute to open source projects.
Making your first contribution can often be an intimidating experience, but it shouldn’t be.
Open source is a space open to everyone, and contributions happen at all levels.
Finding an Open Source Project That Needs Contributions
You can start by thinking about the projects you already use or want to use.
Contributing is easier when you are familiar with the project and its community.
Maybe while reading a project’s README file, you find a broken link or a few typos.
Maybe you’ve noticed that something doesn’t work as expected, or that the documentation is outdated.
These are all great opportunities to help and contribute to the project.
Using GitHub Search
You can also use GitHub search to explore related topics and projects.
Go to GitHub search and enter the keyword for your topic.
For example, let’s say you’re interested in machine learning.

You can then refine your search by selecting Topics in the left sidebar.

From there, you can find relevant repositories based on your search keyword, as well as repositories curated by community members.
Getting Familiar with an Open Source Project
It’s important to mention that every open source community is different.
Once you’ve found a project, you’ll need to get familiar with the project and its contribution guidelines.
Most projects include the following documents at the root of the repository:
- LICENSE: The project must include an open source license. If the project doesn’t have a license, it’s not an open source project.
- README: The README file usually serves as the homepage for the project. It typically provides information on how to get started with the project. It often also includes details on how to engage with the community.
- CONTRIBUTING: As the name suggests, this document provides instructions on how to contribute to the project. It usually outlines the contribution process and includes details on setting up your development environment.
- CODE_OF_CONDUCT: The code of conduct sets basic rules for community members. It helps make the community a safe and welcoming environment for everyone.
Although not all projects have CONTRIBUTING or CODE_OF_CONDUCT documents, their presence is a good indicator of a welcoming and inclusive project.
Communication Channels in Open Source Projects
Open source contributors and maintainers come from all over the world.
Projects usually have several communication channels to organize discussions and ask for help.
A good way to get familiar with the community is to check out some of these channels:
- Issue tracker: This is where users discuss problems and tasks related to the project. To find issues on GitHub, go to the main page of the repository and add
/issuesto the end of the URL, for example:https://github.com/jupyter/notebook/issues - Pull requests: This is where users discuss and review changes made to the project. You can access it by adding
/pullsto the project URL, for example:https://github.com/jupyter/notebook/pulls - Discussion channels and forums: Some projects use discussion channels like Slack, Gitter, IRC, or forums like Discourse for conversations and exchanges.
Identifying Tasks to Work On
You’ve found a project, read the contribution guidelines, and now you’re ready to contribute.
Maybe you’ve already spotted a task to work on, like fixing broken links or updating documentation.
A good way to find beginner-friendly issues is to visit the project’s /contribute URL, for example:https://github.com/jupyter/notebook/contribute

You’ll notice that most of the issues displayed at the URL will have labels such as contribute, good-first-issue, help wanted, beginner-friendly, etc.
Labels are often used to provide general information about the issue and the type of help needed.
You can go to the labels page, for example: https://github.com/jupyter/notebook/labels.
Then, select issues that have labels like help wanted, discussion, or other relevant labels depending on the type of contribution you’re interested in.
While exploring issues, you may also notice that some have related issues or pull requests.

Supporting a Project
There are many ways to contribute to open source. You can financially support the people who build and maintain the open source ecosystem through code, leadership, mentorship, design, and much more.
Open source heavily relies on volunteer work. GitHub Sponsors allows you to fund projects and individuals to help them continue their open source work, while giving them the recognition they deserve.
If a project is eligible for sponsorship through GitHub Sponsors, you will find a Sponsor button on the project’s main page.

You can select the sponsorship level and whether you want your contribution to be public.

Unit Summary
In this unit, you learned how to get started with open source contributions. You now know how to choose a project to work on and use GitHub issues and labels to identify tasks to work on.
Here’s a handy checklist to use when interacting with a project for the first time:
- Does the project have a license?
- Are the issue and pull request discussions actively used by maintainers and contributors?
- Does the project use labels like
help wantedorgood first issuefor new contributors? - Does the project have a code of conduct?
- Does the project provide clear contribution guidelines?
Finally, remember that all contributions are welcome, and the open source ecosystem greatly benefits from your ideas and participation.
There are many ways to contribute to open source, whether by submitting code, joining project discussions, or financially supporting projects through GitHub Sponsors.