I’m a contributor to expressjs and react-native and I’m still in bootcamp. Here’s how.

Yosef Herskovitz
4 min readSep 10, 2020

--

Photo by Markus Winkler on Unsplash

As someone coming from a finance background, I was always fascinated by the open-source community. Like many developers who are beginning their journey, contributing to a large, open-source project seemed prohibitively far away.

While I was comfortable using git and GitHub, I was intimidated by what I viewed as “real projects” being maintained by “real” developers. I couldn’t imagine how I would even begin going about contributing, much less actually providing something useful that would be accepted by maintainers.

I wanted to submit pull requests, but how to break the ice with that first real PR?

There are several resources to help new developers make that leap, but I wanted to see if I could go a bit beyond that. I wanted to contribute to the big, well known projects.

So how could I contribute something meaningful to the community, without being an expert — or even knowledgeable, about any specific project?

The answer I came up with were spelling mistakes, improper grammar, and all typos in general.

I thought of the idea during a paired programming session when I noticed the popular open-source tool we were using for our code had a typo in the README.

And that got me thinking.

If this well-known tool had a typo, then what other big repos had typos in them?

Developers and maintainers are mostly busy with the actual code base, while the READMEs and documentation are just a (necessary) afterthought.

Perhaps this was a contribution I could make to the opensource community: scanning their READMEs for typos.

While I now knew what type of contribution I could offer, I had no idea if it was something that would actually work.

1) Would maintainers accept PR’s that only fix typos? I had no idea.

2) How could I efficiently find the typos? The one I stumbled upon was pure chance, and while I was sure other repos were bound to have typos, I was not about to carefully read through hundreds of project READMEs in order to find them.

While I still wasn’t sure whether my PR’s would be accepted or not, I was fairly sure I’d be able to create a program that would help locate those typos.

And I did!

SerialContributor, allows someone to quickly scan through project READMEs and see if there are typos or not. The project is built with JS and uses express, puppeteer, sequelize, axios and postgres.

Here’s how it works:

  1. I wanted to contribute to large, well known repos, and for that purpose I wanted to sort the repos on GitHub based on how many stars they have. Fortunately, GitHub offers that functionality.
  2. Starting with that link, I use axios and Puppeteer to pull all the repo URLs that are listed on the page and save them to my database. SerialContributor then moves to the next page and does the same thing. Rinse and repeat, three times in a row.
  3. It then iterates through all the URL’s in the database and scrapes the text of their README pages, saving them to the database as well.
  4. SerialContributor then uses puppeteer to open 3 chromium windows to spellboy.com, where it then inserts the README text to be spellchecked for typos or grammatical errors.
  5. After scanning through each of those, you can just hit enter to continue to the next batch of three.

And so it goes. Rinse and repeat.

Using SerialContributor I was able to search almost 1,000 repos in just 3 evenings.

I made a total of 29 Pull Requests, with the least starred repo having over 14,000 stars.

Some of the projects I have been approved or merged into:

Within Top 150 Repos on GitHub:

Within Top 300 Repos on GitHub:

Within Top 500 Repos on GitHub:

Within Top 1,000 Repos on GitHub:

The code for SerialContributor is open-source and freely available here. The project README goes into far more detail on how to use the software as well as how to create your own pull requests when you do find some typos.

To anyone reading this who is just starting their coding journey, don’t be afraid to make your contribution, no matter how small it may seem!

To all you experienced Devs and professional project maintainers, don’t sweat the small stuff! Us new guys have your back.

--

--

Yosef Herskovitz

A Fullstack Dev with a background in Finance & Accounting and an interest in 🚀 ✨