DEV Community

Joe Attardi
Joe Attardi

Posted on • Originally published at

Your side project is useful, even if no one uses it

This is what most of my GitHub repositories look like:

An unpopular project

A few of my projects have a dozen or so stars, but my work is largely unknown. My most popular project, json-colorizer, has (as of the time this post was written) about 4,000 downloads a week. I use the term "popular" very loosely because for an npm package, this is not very popular. Only 35 packages list it as a dependency (one of which is another of my projects).

This is fine. I learned a lot in the process of creating it. If a handful people find it useful, that's great, but it's not my primary goal.

For me, the primary goal of a side project is to learn something, or to practice something I already know. The reason I created json-colorizer was because I had created another project, simply named http-tool, to play around with Node's APIs for making HTTP requests. I wanted to colorize the JSON response body of requests, so I decided to create the colorizer as a separate library. At the time, I wasn't aware of the jsome project, which does the same thing as json-colorizer but is a lot more popular (around 70,000 weekly downloads).

Another project, GitHub PR Dashboard, was created out of a need to see GitHub pull requests across multiple repositories, something we had at Constant Contact. At the time, I was just starting to learn React, so I decided to build a pull request dashboard using React. I ended up also using Redux in that project - probably overkill - but I learned a ton, and it was fun. Later, I started working on an Angular version, which I never got around to finishing. Which brings me to my next point...

You don't need to finish it to get something out of it

Most of my projects on GitHub are half-finished or less. Here are a few:

  • The aforementioned Angular version of GitHub PR Dashboard
  • GeekChat, an attempt to make a multi-room chat app. This was mostly a project for learning Vue.js (which, alas, I have all but forgotten by now).
  • Shout, another attempt at a chat app, built in Angular.
  • API Client, a poor man's Postman clone, an experiment working with Electron and React.

You get the point. I have a lot of unfinished projects. Sometimes, I just didn't have the time; other times, I got distracted and started something new. I think this is OK, because I learned a lot while working on each of these projects.

Of course, it is always better if you do finish it. It feels good to finish it and put it out there. But my point is that even if you don't, you can still get a lot out of it.

Now, go off and build something!

Top comments (5)

jdriviere profile image
J. Djimitry Rivière

My repositories look like that too: empty and forgotten. But the knowledge gained is most important.

johnkazer profile image
John Kazer

Practice and regular output are key to learning and creativity. The best engineers and artists (I would argue) were almost always the most prolific. Only a portion of the output was used/admired, but the rest formed the bedrock!

cescquintero profile image
Francisco Quintero 🇨🇴 • Edited

For me, the primary goal of a side project is to learn something, or to practice something I already know.

Same here. We as developers need to constantly practice our craft/art/essence or we risk getting rusty or bored.

As in the Medium articles, Often Be Coding or Always Be Coding.

anwar_nairi profile image

100% agree, I think the regular fail then learn step is not only productive, but necessary to earn experience faster and to compare tools to know which one does the job better for a given project.

I like how personal projects can also be seen as a showroom for "what I can build" projects.

I think you can definitively appreciate the evolution of thought of someone if he is enough active on his open source projects, and this is the most amazing thing.

darkes profile image
Victor Darkes

Very true that even if you didn't complete what you're working on during your spare time, it's valuable if you learned something new.