🕵️♂️ Embarking on your journey and learning how to contribute to open source is an exciting step towards honing your programming skills, collaborating with experts, and giving back to the global developer community. However, the challenge often lies in finding the right project to kickstart your open-source journey.
Table of Contents
Don’t Overcomplicate the Process
Before we get too deep into how-tos, let's simplify these steps and look at a step-by-step process to help you discover open-source projects that align with your interests and expertise.
Make sure you take a moment to identify your interests and skills before you start searching for open-source projects. This is extremely important because defining what sparks your excitement will be your fuel to start this journey.
Goals and Interests
Let’s talk about what gets you out of bed in the morning and drives you to want to code and contribute to this vast world called open-source! Are you passionate about security, web development, machine learning, or mobile app development? Also, determine your programming languages of proficiency, frameworks you're comfortable with, and areas you'd like to explore further.
Open Source Collaboration using GitHub
Numerous platforms and directories host a plethora of open-source projects, making your search more manageable. GitHub is a central hub for open-source collaboration, offering a user-friendly platform for hosting, sharing, and collaborating on software projects. They are just one of the many SCMs (Source Code Managers) but for the simplicity of this article, I will be using it to demonstrate how to explore the world of open source.
Explore Platforms and Directories
Now that we have a clearer direction on what sparks your interests, let's take a look at how to find open-source projects that you can start contributing to.
Click on the GitHub icon menu in the top left corner.
If we search for open-source we get a long list back but we have the ability to explore trending repositories, search by programming language, and even filter by topics of interest.
Utilize Keywords and Tags
When searching on platforms like GitHub, utilize relevant keywords and tags. For instance, if you're interested in TypeScript web development, you might use tags like "typescript", “javascript”, "react" and, "nextjs" to narrow down your search.
If you would like to narrow your search even further and combine keywords, just wrap them in []. For example, if I want to make the search extremely narrow and I am looking for a project to contribute to with both "nextjs" and "python"?
Let's wrap [nextjs], [python] in the search and see what comes back.
If you are initially searching broadly, an extensive list will be returned but for the sake of time let's take a look at BoxyHQ. They are passionate about open-source and welcome contributions to their docs, guides, blogs, and codebase.
Let’s hop into the SAML Jackson repo...(clever isn’t it? 😉).
By the way, giving a star shows you value that project!
Click on the picture above
If we take a look at the “Issues” tab we can see there is quite a mix of tasks from “enhancements” to “good-first-issues”. This is one of the best places to start because the features or fixes are in a list and the complexity is usually in an easy-to-read tag.
Evaluate Project Health
Once you've found a project that piques your interest, assess its health and activity. Look for signs of an active contributing community:
Recent commits:
- Frequent commits indicate ongoing development.
Open issues:
- A balance between open and closed issues suggests an active issues tracking process.
Pull requests:
- Open pull requests and merged ones indicate collaboration.
You can also make sure the project is still alive and well by clicking on the activity link.
Community Engagement
A good place to start is to look for project “Discussions” or an external community such as Slack or Discord.
Engage with the project's community by introducing yourself, asking questions, and expressing your interest in contributing. Being an active part of the community enhances your chances of finding a suitable project, not to mention it’s a great way to network and make friends.
If you are curious, BoxyHQ’s Discord is an active place to learn more about how contributors interact. This is also a place to start asking questions to find out how you can start contributing.
Time to Get Started
Before you commit to a project, thoroughly read its documentation and contribution guidelines. These documents provide insights into the project's structure, coding standards, and expectations for contributors. It's important to be aligned with the project's values and procedures.
Start with Beginner Friendly Issues
Projects often label issues as "beginner-friendly" or "good-first-issue." These issues are designed to be accessible to newcomers and are an excellent starting point. They allow you to get a feel for the project's codebase and workflow without overwhelming complexity.
Contribute and Collaborate
Once you've selected a project, don't hesitate to contribute. For beginners to open-source contributions, this will start putting teamwork into context. Start small with your chosen beginner-friendly issue. Collaborate openly, seek guidance when needed, and learn from code reviews and feedback.
One final detail, GitHub tracks your activity as well as contributions so if building an open-source contributor resume is important to you this is definitely a great way to accomplish this.
Congratulations on this new chapter!
👩🏫 Let's Take a Step Back and Look at Some Learnings
⭐ Finding the right open-source project to contribute to is a crucial step in your journey as a newcomer to the open-source community❤️.
💖 By identifying your interests, utilizing platforms and directories, assessing project health, and engaging with the community, you can discover projects that align with your skills and passion.
✨ Remember that the process might require patience, but the rewards of meaningful contributions, skill growth, and community engagement are well worth the effort.
🚀 So, dive into the open-source landscape, explore, and make your mark as a valued contributor.
Top comments (34)
Great tips @nathan_tarbert
How can I add multiple keywords in my search? Like NextJS NodeJs
@thevinitgupta, you bring up a good point that I should definitely insert into the article which is simple wrapping [nextjs], [node] in brackets, and then you can expand your search.
BTW, this also works in places like Stackoverflow, etc...
This is really useful
Thanks a lot
Glad to hear it.
You're welcome!
Great article Nathan!
Thank you @nevodavid!
I really appreciate it :)
Nice article !!
There are too many open source projects in github.
To narrow down the list, there is LinuxFoundation and CNCF(Cloud Native Cloud Foundation) which leads open source globally.
There are about 800 projects in LinuxFoundation.
LinuxFoundation Projects
If you are interested in Cloud, see Cloudforet project, a series of LinuxFoundation Project.
Cloudforet
Nice @choonho, thanks for sharing!
Im a big fan of the LinuxFoundation and CNCF.
Great suggestion :)
Here is a nodejs typescript project that everyone is more than welcome to contribute. It has 1.4 ⭐ and continue growing
Awesome @rsaz, thanks for posting!
Awesome @rsaz!
Thanks for posting :)
I actually find this very helpful
That's amazing @chrisimade!
I really appreciate you letting me know :)
Nice article, Nathan!
I really appreciate that @caloique!
Awesome Article, Nathan! 🔥
Thanks so much @srbhr. That means a lot!
Nice one, Nathan!!
Thanks Utkarsh!
Amazing way of finding first open source contribution, great write-up Nathan!
Thanks so much @pizofreude. That means a lot :)
Really helpful with Hacktober coming up.
Thanks so much for letting me know @lukaskrimphove!
I really appreciate that :)