DEV Community

Cover image for Mixed feelings on open-source
Andrew Redican
Andrew Redican

Posted on

Mixed feelings on open-source

Mixed Feelings

I've got mixed feelings about open source. Yet, I still actively create open-source projects. On the one hand, it has never been easier to do it. On the other, it hardly pays -at least not directly.

Dipping my toes in the water

The first time I created an open-source project was a couple of years ago. I was planning to move abroad and realized I needed a technical portfolio since it would be harder for me to find a job when my work credentials were all from where I was based before.

At the time, I was doing a bit of React, and in my previous job, I had identified this thing that was like "oh, I wish we had something like this" but there was no good open-source code at the time.

I remember spending about two months, on and off with some spurts of a lot of progress 💪, and certainly doing a lot more as the day of my departure encroached ⏳. I wrote about 1k lines of JavaScript.

I found a job 8 days after landed abroad. I consider myself incredibly lucky. I've moved to several jobs over the past few years, and I've gotten feedback that the open-source project I wrote was a contributing factor to securing the role.

Flash forward to today, and I see that open-source projects achieve relative success with +400k downloads per month. I think it became popular because I had made something that at the time there were not any suitable/competing alternatives.

Lessons Learned

A few things I regret:

  1. I wish I had set up my project so that maintaining or extending it would be easier.😩

  2. I wish I should have stopped to consider if there was a good way to monetize my idea. I believe in sustainable open-source, after all, you are giving away time. 😞

Other things came with open source. I was still a newbie back then, development tools weren't as great as 5 years ago, so I had to learn to set up projects from the ground up and put tooling together. I also found
new appreciation for writing good documentation.

Documentation is such a ubiquitous thing, that typically is not the first thing on your to-do list or so I thought. When creating something for other developers, however, something that directly influences adoption is having good documentation.

I think open-source because it is public, everyone gets to look at it and can choose to use it, it raised the bar in terms of how well I write up documentation.

📓 Documenting Code

Today, I use things like SwaggerUI, and typedoc especially, which are helpful tools to present the API of your open-source projects.

There is also something satisfying to see that shiny new feature well introduced for everyone to read. Like I get I direct dopamine boost every time I run the build and deploy command for documentation.

I learned about NX recently and before this.

I hated monorepos. Every time I had come across one was in the context of maintaining a massive legacy code monolith-hybrid of sorts, which typically guaranteed it was going to be painful to migrate because project configurations were somehow tightly coupled making it a total pain 💩.

I have never seen it done correctly until I came across Nx. After figuring out how to automate managing Contributor License Agreements and Github sponsors, 👷 I have decided I will slowly bring all these "small" "side-projects" I've been doing on my weekends and put it all under one repo.

Now I have this massive backlog of projects to port over and make public, and I have different docs set up for each and I knew if I didn't centralize a way to do it, it would create additional overhead to maintain documentation in the long run.

✨ Look what I just made ✨

I browsed for community plugins for NX and didn't find an adequate solution there. So I went ahead and created a plugin to scratch my own itch, but do others a favor too: @enio.ai/typedoc.

My end game is to get paid for doing the thing I am good at, working on the things that only interest me. Setting up sponsors is part of that strategy, writing this post is another.

Thanks for reading this far. I appreciate you for it. 🙇

Top comments (0)