// the find
plouc/nivo
nivo provides a rich set of dataviz components, built on top of the awesome d3 and React libraries
nivo is a React charting library built on D3, offering 30+ chart types across SVG, HTML, and Canvas rendering targets. It's for React developers who want declarative chart components with built-in animations and don't want to write D3 directly. The playground at nivo.rocks is genuinely useful for exploring options before writing any code.
Each chart type ships in three rendering flavors (SVG, HTML, Canvas) so you can drop in a Canvas variant when you hit performance walls without relearning the API. SSR support is real, not an afterthought — the separation between compute hooks and render components makes it work. The Cypress component test suite covers nearly every chart type, which gives you some confidence that a version bump won't silently break your bar chart. The monorepo structure means you only install the packages you actually use, keeping bundle size honest.
The prop surface area is enormous and TypeScript types alone won't tell you what combinations actually work — you end up in the playground or GitHub issues more than you'd want. Animation is via react-spring, which adds a non-trivial dependency that can conflict with your own react-spring version if you're already using it. Accessibility is basically absent: no ARIA roles, no keyboard navigation, charts are invisible to screen readers out of the box. Last meaningful commit activity suggests the project is in maintenance mode, and some newer chart types feel less polished than the core ones.