finds.dev← search

// the find

naver/billboard.js

★ 6,013 · TypeScript · MIT · updated Oct 2026

📊 Re-usable, easy interface JavaScript chart library based on D3.js, with SVG and Canvas rendering support

billboard.js is a D3-based charting library that renders SVG by default and offers an opt-in Canvas mode for dense axis charts. It has a documented migration path from C3.js and suits developers who want a drop-in chart layer with many chart types and built-in interactions, without writing D3 by hand.

- The Canvas renderer is a separate entry point (billboard.js/canvas) enabled through render.mode, so the switch away from SVG is explicit rather than a rewrite. The checked-in benchmark directory and perf baseline mean the performance claims are at least being measured.

- Shapes and interactions are named exports such as bar, line, and zoom, so an ESM build can include only what a chart uses. The gzip badge points at a public size measurement, which is more useful than a vague claim about being lightweight.

- The React wrapper sits on its own subpath, so importing it does not pull the full library into a non-React bundle. It takes the bb namespace as a prop, which keeps the wiring visible.

- The test tree is split into api, esm, and Canvas-specific specs, with a Coveralls badge and a CI workflow in the repo. The Canvas coverage specs are the ones to read if you plan to depend on that path.

- Canvas mode is deliberately narrow. The README limits it to certain chart types and says SVG parity has a defined scope, but pushes the details to CHANGELOG-v4. If you need identical tooltips, zoom, or selection across every chart type, read those notes before committing.

- Most of the real documentation lives on a GitHub wiki and a separate Pages site, not in the repo. The migration guide, roadmap, and how-tos are there, so the docs can drift from the version you actually install.

- D3 is a hard dependency with a version matrix: billboard 3.x needs D3 6 or later, and 1.x to 2.x need D3 4 or 5. The packaged build bundles its own D3 and the README calls it unofficial, so pick one loading strategy and stick to it.

- Legacy browser support is explicitly not guaranteed. The README sends you to a wiki page for custom bundling, which is more work than the one-line install suggests.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →