DEV Community

Cover image for 🧭 Navigating the Open Source Landscape: ⭐Finding Your First Contribution
Nathan Tarbert
Nathan Tarbert

Posted on • Updated on • Originally published at boxyhq.com

🧭 Navigating the Open Source Landscape: ⭐Finding Your First Contribution

🕵️‍♂️ 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.

Lets do this

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.

Github dashboard
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.

Github explore

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.

Github languages

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.

narrow github search

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? 😉).

saml jackson

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.

github issues

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.

Github activity

Community Engagement

A good place to start is to look for project “Discussions” or an external community such as Slack or Discord.

Github communities

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.

Keep developing

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!

Code CLI

👩‍🏫 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)

Collapse
 
thevinitgupta profile image
Vinit Gupta

Great tips @nathan_tarbert
How can I add multiple keywords in my search? Like NextJS NodeJs

Collapse
 
nathan_tarbert profile image
Nathan Tarbert • Edited

@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...

Image description

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Image description

Thread Thread
 
thevinitgupta profile image
Vinit Gupta

This is really useful
Thanks a lot

Thread Thread
 
nathan_tarbert profile image
Nathan Tarbert

Glad to hear it.
You're welcome!

Collapse
 
nevodavid profile image
Nevo David

Great article Nathan!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thank you @nevodavid!
I really appreciate it :)

Collapse
 
choonho profile image
Choonho Son • Edited

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

Image description

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Nice @choonho, thanks for sharing!
Im a big fan of the LinuxFoundation and CNCF.
Great suggestion :)

Collapse
 
rsaz profile image
Richard Zampieri

Here is a nodejs typescript project that everyone is more than welcome to contribute. It has 1.4 ⭐ and continue growing

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Awesome @rsaz, thanks for posting!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Awesome @rsaz!
Thanks for posting :)

Collapse
 
chrisimade profile image
@Chrisdevcode

I actually find this very helpful

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

That's amazing @chrisimade!
I really appreciate you letting me know :)

Collapse
 
caloique profile image
Sama

Nice article, Nathan!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

I really appreciate that @caloique!

Collapse
 
srbhr profile image
Saurabh Rai

Awesome Article, Nathan! 🔥

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks so much @srbhr. That means a lot!

Collapse
 
life_of_utkarsh profile image
Utkarsh Mehta

Nice one, Nathan!!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks Utkarsh!

Collapse
 
pizofreude profile image
Pizofreude

Amazing way of finding first open source contribution, great write-up Nathan!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks so much @pizofreude. That means a lot :)

Collapse
 
lukaskrimphove profile image
Lukas Krimphove

Really helpful with Hacktober coming up.

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks so much for letting me know @lukaskrimphove!
I really appreciate that :)

Collapse
 
jorensm profile image
JorensM

Thanks for the great tips, great article!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thank you @jorensm!
I really appreciate that :)

Collapse
 
devkiran profile image
Kiran Krishnan

Great article.

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thank you @devkiran!

Collapse
 
keviningles profile image
Kevin Ingles

Nice article!!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks @keviningles!

Collapse
 
dennisartheart profile image
Dennis A

Really informative!

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

Thanks @dennisartheart! I appreciate that :)

Collapse
 
tarenpang profile image
TarenCodes

Thanks, Nathan. Excellent tips for getting started in open source.

Collapse
 
nathan_tarbert profile image
Nathan Tarbert • Edited

Thanks @tarenpang :)
That's super encouraging. I really appreciate you letting me know!