How to find a suitable topic at GitHub to contribute?
Published: 2023-07-20 13:01:19

There are millions of projects at GitHub and the developers often don't know which project can be the best and most interesting to contribute. Here I'd like to share ideas how to find the best and the most interesting project to join to contribute.

## Project issues

One important thing you should keep in mind. Each project has a list of open issues (tasks) with labels like this:

![GitHub open issues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89jydx3ilgj02mycduge.png)

The issues that need a help normally are labeled "_help_", "_help wanted_", "_good first issue_", etc.

## GitHub search

The GitHub has powerful search engine, where you can filter the results by various criteria. For example, the search by keyword ["_help wanted_"](https://github.com/search?q=%22help+wanted%22&type=issues) and filtering by _issues_ will bring such result:
![GitHub filter by issues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9fs41f4qkl30452hvxc.png)

As you noticed, on the first row there are issues with the title "Help wanted" and I guess this is not what you are looking for.

## Narrow search result

To narrow the search result, on the left side of the page there are many other criteria to filter. If you remove the searching **text** "_help wanted_" and instead select **label** "_help wanted_" and select the **state** "_open_", you'll have [the result](https://github.com/search?q=state%3Aopen+label%3A%22help+wanted%22&type=issues) of all open issues labeled "help wanted":
![GitHub search by label help wanted](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7ususa8o8wyfneqidpz.png)

As a software developer, you might like to narrow the result by programming language and the technology. Unfortunately, the search of an issue does not support filtering by topics. But you can still use searching by **keyword**, **label** and **programming language**.

For example:
1. If you search by **language** "_C++_", [this](https://github.com/search?q=state%3Aopen+label%3A%22"help+wanted"%22+language%3AC%2B%2B+&type=issues) will be your search result.
2. If you search by **keyword** "_user interface_", [this](https://github.com/search?q=%22user+interface%22+state%3Aopen+label%3A%22"help+wanted"%22+&type=issues) will be your search result.
3. If you are a technical writer and search by additional **label** "_documentation_", [this](https://github.com/search?q=state%3Aopen+label%3A%22"help+wanted"%22+label%3Adocumentation+&type=issues) will be your search result.

## Issues with labels

In addition, if the owners of the repositories add more relevant and precise labels to the issues, it increases the possibility that the OSS developers find the issues they would loved to resolve. For example, the [issues](https://github.com/aregtech/areg-sdk/issues) of AREG SDK which marked "_help wanted_" in addition have such labels like "_C++_" or "_cmake_", "_unit test_", etc.
![AREG SDK open issues help wanted](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7xd71tyrwhlz6fy53dy8.png)

It costs a second to add an additional label, but it saves a lot for others to find and to start to contribute in the project.

Experiment with the filters of GitHub search. For example, if you are not really sure for the project or want something simpler you can as well filter by "_good first issue_", which normally supposed to be easier tasks. The GitHub as well has possibility for advanced search, which you can find in the menu of the right-top corner of the search page:
![GitHub advanced search](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6uirazdekia1r129cpc3.png)

## Help me to get more contributors

Since i run a OSS project, I'd like to take the opportunity to invite contributors to join the project.
- The **C/C++ developers** that would like to contribute are welcome to join [AREG SDK](https://github.com/aregtech/areg-sdk) project. 
- The **C# developers** can join the project to develop [AREG SDK UI tools](https://github.com/aregtech/areg-sdk-tools).
- For the **technical writers**, there are [Wiki pages](https://github.com/aregtech/areg-sdk/wiki) of AREG SDK project that I would like to improve.
- **All others**, please help me by voting this post and starring [areg sdk](https://github.com/aregtech/areg-sdk/stargazers) repository. This will increase the possibility to find more contributors.