I Made My First JS Library. Here's What I Learned
Published: 09 Jul 2021
I'm fairly new to programming, in fact, I've started to get the gist of JS in the last few months. So I never thought I could create a well functioning web app let alone a library. Here's how I did it and what I learned from that experience.
It all began 3 months ago, around March 10th. I had no intention of creating a JS library. At the time, I was trying to learn how to use the command-line, when I realized that the command-line was quite intimidating for newbies like me.
My idea was simple, create a web app that serves as a playground for CLIs, but a lot friendlier and holds the user's hand while they develop their skills.
How was I going to create the command-line aspect of the web app? I had some initial bad ideas, so... I went with the least bad one I had.
First, you type up your command and press enter. Then, your input is converted into a list of words. The first word would be the command name, and the rest would be parameters. The command name would reference a function that would be executed with the parameters from your input. Simple right?
Well, at this stage, I realized I could do so many different things and go so many different ways with it. What if I decided to create something like it in the future? Or projects with the same features?
After really taking my time and humming over the idea for 2 seconds, I decided to turn the JS code I had into a library. This way, I could create something else with it in the future, and I wouldn't have to reinvent the wheel.
I had something working, but now I had to make it flexible enough to be able to use it in a variety of different projects. Also... turns out libraries are bundled a bit differently. AND... it didn't have a way for a developer to extend and build upon it.
So I had to rewrite everything from scratch with new type of users in mind, the developers that might use this library in the future.
So I spent few more weeks to creating v2.
So I spent 2 months creating something that no one else will probably use. But that's not all to it.
- The way I approach problems and go about solving them has definitely improved as well.
- My project management skills have also improved, though I'm still messy.
- AND... now I have my problem solved and can proceed to creating that website I mentioned earlier.
Weather someone will actually use it or not, it feels incredible to create something and make it open source. And I wouldn't have learned and gained more skills if I hadn't taken on this project.
Anyway, here is the link to the project if you want to check it out.