Quarter of Open Source

Show blog post de­tails
Open Source
Hide blog post de­tails

The first quar­ter of 2019 was very in­ter­est­ing for me. It was the first time I did a lot of open-source work as a way to scratch my own itch. Every time I thought I needed a spe­cific tool which I could­n’t find, I built and open-sourced it.

Background #

The num­ber of con­tri­bu­tions I’ve made on GitHub has in­creased by over 20x in the past few years.

Graph of contributions

2015 #

In 2015, I made slightly more than 100 con­tri­bu­tions. These were mostly on my own pro­jects, like my per­sonal web­site, Made with Love in India, and Saga Music. This is still less than 2014 (when I made a few pro­jects cen­tered around CSS and WordPress), but it’s still some­thing.

Contributions in 2015

2016 #

2016 was bet­ter, with more than twice the num­ber of con­tri­bu­tions. This is also when I founded Oswald Labs, so some of that work went into build­ing our web­sites and first open-source ex­ten­sion.

Contributions in 2016

2017 #

2017 was even bet­ter with 465 con­tri­bu­tions. In the first half of the year, I was work­ing full-time on Oswald Labs (along with some free­lance pro­jects), and moved to Enschede in the sec­ond half. I also par­tic­i­pated in (and won!) two hackathons, whose pro­jects I also open-sourced. Oswald Labs mostly worked on GitLab, so there are (scattered) con­tri­bu­tions here and there.

Contributions in 2017

2018 #

Last year is when there was a sub­stan­tial, 6x in­crease in my open-source work. With over 2,500 con­tri­bu­tions, this was the first time I was in four-fig­ures, and my work was mostly on per­sonal pro­jects and a few li­braries.

Contributions in 2018

2019 #

Finally, as of the first quar­ter of this year, I al­ready have over 1,500 con­tri­bu­tions. These are split around both Oswald Labs and my per­sonal pro­jects, and I also made a sys­tem to count my GitLab com­mits. At this rate, I should hit 5,000 this year (thought I don’t know how long I can keep this rate up).

Contributions in 2019

Projects #

These are the pro­jects I’ve built in the first quar­ter of 2019. In this sec­tion, I’m count­ing a lit­tle bit of December 2018 and a few days in April 2019 as the first quar­ter too, be­cause I started some pro­jects a few days be­fore 2019 be­gan, and fin­ished one a day in April.

📝 Hovercard #

Itch: For a hackathon pro­ject, my team and I made Aristotle, an e-learn­ing sys­tem. For this, I wanted a way to show Wikipedia sum­mary cards for im­por­tant terms.

Scratch: A DOM li­brary to show Wikipedia sum­mary cards us­ing Wikipedia’s API. JavaScript, December 2018 · GitHub · NPM

👋 Hello-Bar #

Itch: The Hello Bar ser­vice is ex­pen­sive, and Oswald Labs needed a way to show tar­geted an­nounce­ment bars with im­por­tant in­for­ma­tion to vis­i­tors.

Scratch: A pack­age to show tar­geted hello bars. JavaScript, January 2019 · GitHub · NPM

♿ Accessible Web Component(s) #

Itch: There’s a lot of boil­er­plate to make in­puts with la­bels (id, for), and I wanted a web com­po­nent to au­to­mate that

Scratch: A web com­po­nent, <form-group> to au­to­mate la­bels and IDs. JavaScript, January 2019 · GitHub · NPM

Around this time is also when I learned TypeScript, so the pro­jects af­ter late-Jan­u­ary are not in ES6.

Itch: For an AI sched­ul­ing as­sis­tant I’m work­ing on, I wanted a way to send plat­form-ag­nos­tic cal­en­dar in­vi­ta­tion links.

Scratch: A Node.js li­brary for gen­er­at­ing links for Google, Yahoo!, and Outlook cal­en­dars. TypeScript, January 2019 · GitHub · NPM

🌐 Auto I18N #

Itch: It’s hard to trans­late JSON files us­ing Google Translate, es­pe­cially if they have nested items. However, this is a ne­ces­sity if you can’t af­ford to pay hu­man trans­la­tors and still need lo­cal­iza­tion.

Scratch: A Node.js util­ity to trans­late works, ob­jects, and files us­ing Google Translate. TypeScript, March 2019 · GitHub · NPM

📦 Typestart #

Itch: With me mak­ing so many DOM li­braries in TypeScript, I wanted a easy-to-use, no-con­fig­u­ra­tion starter with did­n’t have tons of boil­er­plate code.

Scratch: A TypeScript starter for li­braries with DOM sup­port and tests us­ing Jest. TypeScript, February 2019 · GitHub · NPM

🔔 Changebar #

Itch: I wanted a plu­gin to show users the most re­cent up­dates and fea­tures on Agastya’s ad­min panel.

Scratch: A no­ti­fi­ca­tions wid­get to show changel­ogs, pow­ered by Markdown files hosted on GitHub. TypeScript, February 2019 · GitHub · NPM

🐦 A11Y is Important #

Itch: I wanted to build a Twitter bot (never did that be­fore), and also wanted to cu­rate a time­line re­lated to ac­ces­si­bil­ity.

Scratch: A Twitter bot which tweets and fol­low #a11y-related peo­ple and things. TypeScript, March 2019 · GitHub · NPM

🐎 Twente License #

Itch: The MIT li­cense is great, but I wanted to add val­ues like pri­vacy to it, to en­sure that my code is­n’t used for evil.

Scratch: A fork of the MIT li­cense with an added para­graph about pri­vacy, along with a sta­tic site gen­er­a­tor to show it off. TypeScript, January 2019 · GitHub

🗄 Fraud #

Itch: MongoDB is an overkill for sim­ple key-value stor­ages, and I wanted a git-based backup sys­tem to store and man­age Oswald Labs’ de­vel­oper API keys.

Scratch: JSON file-pow­ered key-value stor­age with cache; su­per fast, al­ways avail­able. TypeScript, March 2019 · GitHub · NPM

📝 GitWriter #

Itch: I wanted to write my hon­ors re­search pro­posal, but on GitHub with auto-sav­ing.

Scratch: A pro­gres­sive web app to write text in Markdown on GitHub, auto-sav­ing and cross-plat­form. Vue, March 2019 · GitHub

Itch: I wanted to share links to my fa­vorite pod­casts with my friends, but did­n’t know which pod­cast player they pre­fer.

Scratch: A web app to share links for pod­casts, songs, movies, and more, with sup­port for most ma­jor apps and stores. Vue, March 2019 · GitHub

🗃 Embed Widget #

Itch: Many web­sites these days want to em­bed tiny live chat or sup­port wid­gets to their web­sites, and most of them live in iframes. I wanted a starter for that.

Scratch: A but­ton wid­get to open and ma­nip­u­late em­bed­ded frames on web­pages. Typescript, March 2019 · GitHub · NPM

🎨 Prefers Color Scheme #

Itch: In ma­cOS Mojave, users can choose their pre­ferred color scheme (dark or light), and I wanted a way to see which theme a user has se­lected.

Scratch: A DOM util­ity to get a user’s pre­ferred color scheme. TypeScript, March 2019 · GitHub · NPM

📷 Photomonster #

Itch: I want to backup my phone’s pho­tos, but to my own S3 in­stance be­cause I’m afraid to lose them (I al­ready pay for Google Photos, but I’m para­noid about data loss).

Scratch: An app to backup pho­tos to S3, Firebase Storage, or cus­tom end­points. Work in progress. React Native, March 2019 · GitHub

🈹 Language Icons #

Itch: Flags aren’t good icons for lan­guages. For ex­am­ple, should I use the US or the UK flag? Why not Pakistan’s? They have more English speak­ers than the UK.

Scratch: A gen­er­a­tor for lan­guage icons us­ing their codes and flag col­ors. TypeScript, March 2019 · GitHub · NPM

Epilogue #

I made the most con­tri­bu­tions I’ve ever made (per day) in the first quar­ter of 2019. I learned a lot (like TypeScript! I love TypeScript!) this quar­ter too, so it was a great start to an im­por­tant year.

Of course, the num­ber of con­tri­bu­tions is not a great way to mea­sure im­pact. It de­pends on how much code is in each com­mit, and how much it’s truly adding to the open-source com­mu­nity. But, all in all, I’m happy with the way things are go­ing and hope to con­tinue to do my small part to build the ecosys­tem.