finds.dev← search

// the find

leeoniya/uPlot

★ 10,232 · JavaScript · MIT · updated Apr 2026

📈 A small, fast chart for time series, lines, areas, ohlc & bars

uPlot is a ~50 KB Canvas 2D charting library built specifically for time series data. It renders 166k points in 25ms and streams at 60fps using a fraction of the CPU/RAM that Chart.js or ECharts consume. It's for developers who need real performance — dashboards, monitoring tools, financial charts — not for people who want a chart that looks nice in a demo.

The benchmark numbers are genuinely impressive and independently verifiable — the author ships competitor benchmarks alongside uPlot's so you can check the methodology yourself. The no-animations, no-stacked-series stance is principled and documented with links to why those features mislead readers, not just hand-waved away. The plugin/hooks API is well-designed: cursor sync, path renderers, and tooltip customization all go through the same extension points rather than bolted-on special cases. At 47.9 KB minified with no dependencies, it's a runtime you can actually audit.

The docs are self-described as a 'perpetual WIP' and that's generous — real usage requires reading the TypeScript definition file and working through demos by trial and error. No stacked series support is a hard blocker for a surprising number of business dashboards; the author is philosophically opposed, so it will never land. The third-party React/Vue/Svelte wrappers are community-maintained, not official, meaning wrapper bugs get stranded between two maintainers. Touch-based pan and zoom aren't built in and the workarounds in the demos require nontrivial glue code to wire up correctly.

View on GitHub →

// 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 →