How to Contribute to OSS cover image

How to Contribute to OSS

The Easy Way

updated 1 day ago

open source (1)
oss (1)

That Open Source Dream Life?

Drippin’ in donations? 💰 Rollin’ in repos? 🏎️ Rebasin’ robb report! 🤯

OSS High Life

Hell yea! Let me know if you ever find it. 🤙

The Reality

If you want to contribute to Open Source, and you’ve struggled to get started, keep reading…

Over my career, I’ve written many PR’s for dozens of 10,000-Star repositories. My modest contributions have landed in Node.js, Docker, Lodash, Bluebird, Gatsby, Rancher, Angular, React Router, Minio, MDN (Mozilla Developer Network) and many more.

I’m going to share my secret to banging out slick contributions, but first we need to discuss the problems with the conventional advice.

This is (Not) The Way

Why is it difficult to contribute to Open Source?

The most common advice actually falls somewhere between useless-to-terrible: Find a GFI issue (Good First Issue label) and solve it. Or, contribute to a project out of sheer love.

It’s all well-intentioned, however in practice GFI labels are highly subjective, and often obscure an unknowable number of steps.

A Better Way

✅ Scan your project dependency file(s). Which libraries spark rage? What led to a missed deadline? How did you overcome it?

💪 By starting with something you already solved, there’s no need to worry if you can. You’re already fluent; and familiar with the context!

By definition, you already solved the thing, most of the work is done.

Next, figure out how to help others avoid your struggle altogether.

Maybe a Tweet or Stack Overflow answer will do, but if you want to make a lasting impact, contribute to the project itself.

The Glory

Preferably while the experience is somewhat fresh, contemplate how your dumb dumb brain got so lost in the first place.

What did you try first? And why? What did you assume? Or misunderstand?

💪 You don’t need to come up with a perfect solution, often simple documentation updates can save countless hours of struggle for others.

  • An outdated README? Missing or bad examples? Omitted setup steps? Simple fix, include any missing info!

  • Did the API documentation not show up in your Google results. Adjust or translate overly technical language.

  • Perhaps it’s a technical oversight, and the docs site is missing necessary <meta/> tags. Fix it if you know how, or write a ticket with your findings.

  • If it’s a skill issue, propose adding appropriate links to relevant resources.

These types of issues are easy for maintainers to miss! And can have surprisingly big impact on the project & its users.

Think about it this way: how would you feel if you knew that sharing your fix might save 100’s (or 100,000’s) of devs from countless lost hours?

Next time you conquer some challenge, don’t rebase away evidence of your inadequacy! Instead share your struggle & solution publicly!

Fine, Fine Print

Always follow project guidelines, and never be an asshole. ✨

It’s all public. So, be gracious, great, and grateful.

If you need any more convincing: contribute for the learning! New processes, languages, frameworks, automation!

Perhaps even more importantly, you can quickly advance your communication skills! The ability to advocate for your ideas can change your life!


If you found this helpful, please share your contributions in the comments or post them to Twitter and tag me @justsml.