First ever big Open Source Contribution? Novu?

·

5 min read

It was last week I started contributing to open source. Open source has been the buzzword lately, and perhaps it's because I've subscribed to numerous tech channels on YouTube that keep on uploading content on Open Source (big thanks to them). So I decided to join the bandwagon before it's too late.

I started by browsing the trending repositories, but I only looked at repositories with fewer stars. I thought that repositories with more stars would have a large codebase, and I didn't believe I had the knowledge and skills to contribute to them.

Suddenly, a notification popped up from one of my favorite tech channels on YouTube, belonging to none other than Piyush Garg, both in name and channel title. To my pleasant surprise, he had just uploaded a video, and the topic was none other than contributing to open source. Just as I had begun my journey into the world of open source, his tutorial on the very subject appeared like a guiding light. I felt like I had a guardian angel looking out for me. It was as if they were extending a helping hand precisely when I needed it the most.

I clicked on the notification and began watching the video. As the minutes passed by, it dawned on me that the repository(Novu) he was attempting to contribute to had a whopping 28k stars. Fear crept in and doubt began to gnaw at me, convincing me that I wouldn't grasp anything at all. However, somewhere deep within, I summoned the courage to persist in the video.

It's not like I never tried dealing with big projects but every time, I tried cloning the project and set it up locally, I would always run into issues. Whether it was version mismatches, library conflicts, OS specific problems, or you name it, issues seemed to pop up without fail. I would get excited about solving the issue but then before I could even start, I would lose all my motivation, just like a saying from Mr. Circuit, "Shuru hone se pehle hi khatam ho gaya..."(It was over before it even began...)

Back to the video, what seemed to be so effortless for Piyush about solving the issue was mind-boggling for me. Much of what he was doing remained a bit of a mystery to me. But what actually kept me going was, setting up the project locally wasn't an absolute necessity. It felt like a breakthrough moment for me, so I immediately start looking up the existing issues on their Github. I couldn't find much recent issues with 'Good first issue' tag so I decided to skip them for the time being.

The following morning, my enthusiasm for the Novu project was still burning brightly so I went to the issues section again. This time, there were a lot of issues with 'Good first issue' tag. Mindful of not overthinking it, I impulsively chose one at random. It happened to involve the task of integrating an email provider into the platform. At first glance, the task appeared rather daunting, but I decided to take the plunge and give it my best shot anyway.

I went ahead and forked the repository, and then I cloned it onto my local machine. However, it didn't take long for me to realize that setting up the project locally was indeed a necessary step. Just when I had thought the Eureka moment would strike me, Murphy's law struck me first, which goes like, 'Everything that can go wrong, will go wrong'.

Anyway, I kept on going. I went through the contributing guidelines file, found the local setup tutorial and followed it. Time ticked away, minutes turning into hours, yet my efforts to set it up locally remained in vain. I was getting so frustrated and annoyed. Sometimes I wonder why all these developers couldn't come up with an idea to just run a single command that would run the machine locally foolproof without any issues whatsoever.

Fortunately, I spotted a little discord icon on their website and joined their server. Luckily, the community was so active, and helpful. What astonished me even more was that the CTO of the project was actively engaged, regularly addressing issues and attempting to find solutions. Typically, individuals in higher positions aren't as accessible, but here I felt something different in a good way. I really enjoyed the positive atmosphere. In that moment, I vowed to myself that I would solve the issue, make a PR and merge it no matter what it took.

After investing a considerable amount of time in the support section and amazing support from Novu's engineers, I was able to set up the project locally. Now that I look closely at the feature that was to be added, it turned out to be far from a "Good first issue" and instead felt more like a soul-crushing first issue lol. I don't even understand where to begin with. I went through the docs following it step by step, there I could find a guide on setting up a new provider. I followed it all, looked upon others' PR, previously installed email providers and somehow was able to to piece together some code.

As I type this, I haven't yet summoned the courage to make a pull request. I'm haunted by the fear that once I do, the reviewers will go through my code, finding faults and the reckless creation of unnecessary variables. Yet, I remain determined to see my PR get merged into the codebase at any cost. More updates later...