DEV Community

Aizaz Khaja
Aizaz Khaja

Posted on • Edited on

I just published my first open source project. Here's what I've learnt.

That it's one of the best ways to learn a technology you haven't worked with before.

I just published an npm package/tool that allows you to create static candlestick charts for financial data. All you have to do is plug in some JSON data, set some options and call the draw() function on it. Check it out here: https://www.npmjs.com/package/candlestickcharts

In a matter of a week's worth of solid work, I managed to:

  • Learn how to create an NPM package (after publishing it, this point feels like a cop out since it REALLY is not that difficult. The point is, sometimes we hesitate making progress because of the anticipated workload).
  • Learn how to work with HTML Canvas. I've never touched this before, but in evaluating my options for this project, I felt like this may be the best way to go about it. "Pfft...it's just HTML, right?!" Wrong. The HTML part of it all was half a line's worth of code. The rest was manipulating pixels using JavaScript.
  • How to accurately scale and plot a chart using HTML Canvas, from data provided in JSON.

Let's not underestimate the value of getting practice in your favorite JavaScript ES6, object, array and Math/Number methods. Plus the fact that you just created a tool that can potentially make at least one developer's life easier and actually pushed it out into the world. That's always a good feeling. Whether or not someone takes this project and creates something out of it, well...🤷‍♂️.

Now to find out how much maintenance work is involved, maybe I'll make another post then 😉. In the mean time, I'm probably going to look into a new project - because let's face it, it's more fun to work on shiny new ideas than maintaining old ones. (Ha.)

Top comments (3)

Collapse
 
gmartigny profile image
Guillaume Martigny

This is not bad at all. Your readme is clear and your code is clean. The purpose of the package is tight, but there's no dumb work.
Keep it up.

Collapse
 
aizkhaj profile image
Aizaz Khaja

Thank you for checking it out! Really appreciate your feedback :) How do you identify/define dumb work if there was some?

Collapse
 
gmartigny profile image
Guillaume Martigny

Sorry I wasn't clear: I just ment that there is no dumb way to do something if it works. ;)