PAUL GUERRERO software engineer
← projects

viz-components

  • lit
  • web-components
  • highcharts
  • npm

I built a chart library with an uncomfortable rule: it had to work the same in a brand-new Next.js project, in an Angular app, and on a page served with ten-year-old HTML. No adapters, no per-framework version.

The way to pull it off was to not marry any of them. Instead of building it on React or Angular, I built it on Web Components: the browser already knows how to register custom tags, so <viz-chart> is just another tag, like <input>. Wherever there’s a browser, it works.

Another decision that paid off: I designed the library before anything that would use it. With no concrete consumer in front of me, the API comes out thought for anyone, not shaped to the rush of the first project. It’s published on npm, and the same component lives unchanged in very different places.

There’s no artificial intelligence here anywhere. It wasn’t needed.


How it’s built — Lit · Highcharts · TypeScript · Web Components

Available on npm