How to find open source projects on github
Discovering relevant projects
If there’s a particular topic that interests you, visit
github.com/topics/<topic>. For example, if you are interested in machine learning, you can find relevant projects and good first issues by visiting https://github.com/topics/machine-learning. You can browse popular topics by visiting Topics. You can also search for repositories that match a topic you’re interested in. For more information, see “Searching for repositories.”
If you’ve been active on GitHub.com, you can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in Explore. You can also sign up for the Explore newsletter to receive emails about opportunities to contribute to GitHub based on your interests. To sign up, see Explore email newsletter.
Keep up with recent activity from repositories you watch, as well as people and organizations you follow, with your personal dashboard. For more information, see “About your personal dashboard.”
You can connect with developers around the world to ask and answer questions, learn, and interact directly with GitHub staff. To get the conversation started, see “GitHub Community Support.”
Finding good first issues
If you already know what project you want to work on, you can find beginner-friendly issues in that repository by visiting
github.com/<owner>/<repository>/contribute. For an example, you can find ways to make your first contribution to
electron/electron at https://github.com/electron/electron/contribute.
Opening an issue
If you encounter a bug in an open source project, check if the bug has already been reported. If the bug has not been reported, you can open an issue to report the bug according to the project’s contribution guidelines.
Validating an issue or pull request
There are a variety of ways that you can contribute to open source projects.
Reproducing a reported bug
You can contribute to an open source project by validating an issue or adding additional context to an existing issue.
Testing a pull request
You can contribute to an open source project by merging a pull request into your local copy of the project and testing the changes. Add the outcome of your testing in a comment on the pull request.
You can contribute to an open source project by adding additional information to existing issues.
5 open source projects I use every week. You might not even know these are OS!
Hacktoberfest kicked off last week and is now in full swing. This week on the GitHub Twitch Channel we did a walk through on all things Hacktoberfest.
We looked at what Open Source is in the first place and how Hacktoberfest got started. We took a deep dive into the State of the Octoverse where you can find lots of information and stats on Open Source Projects and Contributors.
What people really want to know is how to get involved. And not just how to get involved, but where to start. How do you find projects to contribute to? What’s a good project? What if you want to simply learn to code? Or you only just started coding?
Finding a Project
On our Twitch stream, we answered them all. One of the coolest things our viewers loved, is where to find projects. It can often be a daunting experience when you first look at Open Source. There are so many projects and so many issues you almost don’t know where to start. Hacktoberfest has made it easy by showcasing projects on their homepage.
But did you also know you can search trending Open Source projects on GitHub? You can even filter by programming language, spoken language, and even date. We ran through an example on how to find a top Ruby project. If you check out our search terms you’ll find the top Ruby projects for today.
You can even search by developers. If you want to find a top developer contributing to the language you want to write, then you can do just that too. We found a Ruby dev with nearly 6,000 contributions just this year!
There’s so many ways to find projects you’re interested in. Taking a look at trending open source repos are just one way of doing this.
Open Source Friday stream
If you missed this epic talk on our Open Source Friday stream, don’t worry. It’s all recorded and you can check it out on YouTube. You can always join us on one of our Open Source Friday sessions. You’ll meet lots of awesome developers, connect with the community, and have the chance to ask questions from both GitHub staff and open source maintainers.
Follow us on our Twitch Channel and join our Meetup Group. We post all our upcoming Open Source Friday streams, as well as meetups for your region. Looking forward to seeing you on the next live stream, and good luck with all your Hacktoberfest Contributions.
How to find Open Source projects to contribute
June 11, 2022
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 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 which points to the miukimiu/react-kawaii GitHub repository. Same works for Python packages from PyPI. Take as an example fastapi package that points to 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 language where you can see pull requests being merged into the source code.
Here are a few random projects I’ve used before which are open source:
- fastapi, a web framework for building APIs with Python;
- python, the programming language;
- scala-exercises, website to learn how to code in Scala;
- flask-jwt-extended, Flask extension that provides JSON Web Tokens (JWT) support;
- forem, software for building communities which powers dev.to;
- jogo-das-profissoes, a Portuguese web-based memory game for children to learn about different professions;
- Zulip, 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, 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. I decided to make a first small contribution using Markdown, which you can check out at FrancesCoronel/hire-me/pull/9 on GitHub.
Later, I participated in another program called Google Summer of Code (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 such as Google Summer of Code, Outreachy, and Hacktoberfest among others.
For Hacktoberfest, you can find these projects mostly during October. Projects and issues participating will have the “Hacktoberfest” label. For 24 Pull Requests, 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. 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 or in 2021, 2020, 2019, 2018, and so on.
Here are a few organizations that I saw on the organization list ranging in categories: LibreHealth, Postgres, NumFOCUS, Debian, Open Food Facts, and The Tor Project.
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, CodeTriage, Ovio, 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 GitHub repository.
Additionally, you can find sometimes posts on the dev.to community where maintainers may be promoting their open source projects and specifically asking for contributors.
Another tool that can be useful to know, is the GitHub Explore feature that can highlight projects that can suit your skills. You can find projects grouped in collections or topics, or that are trending.
Some Collections that I noticed are government apps, made in Brazil, getting started with machine learning, 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 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.
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.
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.