// the find
reactchartjs/react-chartjs-2
React components for Chart.js, the most popular charting library
A thin React wrapper around Chart.js that gives you typed components like `<Line>`, `<Bar>`, and `<Doughnut>` instead of manually wiring up canvas refs and Chart.js instances. It's the de facto standard for Chart.js in React — 6.9k stars and 2.4k forks reflect genuine adoption, not hype. Best fit for teams that already know Chart.js and want React integration without the boilerplate.
The TypeScript support is genuinely good — `typedCharts.tsx` gives you fully typed dataset and options props that mirror Chart.js's own types, so you get autocomplete on chart-specific options rather than a generic `any`. Tree-shaking works properly: you register only the Chart.js components you use, so you're not shipping the full Chart.js bundle for a single bar chart. The `ref` forwarding exposes the underlying Chart.js instance, which means you're not locked into whatever the wrapper exposes — you can call Chart.js APIs directly when you need to. The sandbox examples per chart type are self-contained Vite apps, making it easy to copy-paste a working starting point.
It's a wrapper, not an abstraction — you still need to know Chart.js deeply to do anything non-trivial, so the value-add over raw canvas + Chart.js is mostly lifecycle management and ref handling. SSR is a known pain point (Chart.js requires a DOM canvas), and there's no built-in solution for Next.js or similar; you're on your own with dynamic imports. The library itself is tiny (src/ is four files), which means when Chart.js has a bug or a missing feature, the fix has to come from Chart.js upstream, not here. Responsiveness still relies on Chart.js's `maintainAspectRatio` and container sizing quirks, which confuse most people on first use — the FAQ exists specifically because it bites almost everyone.