finds.dev← search

// the find

FormidableLabs/victory

★ 11,241 · TypeScript · NOASSERTION · updated Dec 2025

A collection of composable React components for building interactive data visualizations

Victory is a React charting library built on top of D3, offering composable SVG-based chart components (bar, line, pie, scatter, candlestick, histogram, etc.) that share a consistent prop API. It targets React developers who want charts that feel like React rather than imperative D3 — you compose components and pass data as props. There's also a Victory Native package that shares most of the codebase for React Native.

The composability model is the real sell — you can layer VictoryLine, VictoryScatter, and VictoryAxis inside a single VictoryChart and they share the same scale automatically, which D3 alone makes painful. The event system lets you wire cross-component interactions (hover on a bar highlighting a tooltip on a different component) without managing external state. The canvas renderer package is a practical escape hatch for large datasets where SVG performance falls apart. The monorepo structure means you can depend on just victory-bar without pulling in the whole library.

The bundle is heavy — the top-level victory package ships everything including D3 internals, and tree-shaking is hit or miss depending on your bundler setup. Animation is limited and unreliable on complex data transitions; anything beyond simple enter/exit tends to produce visual glitches. TypeScript types exist but the prop API leans heavily on any and function callbacks typed as generic, so you lose type safety exactly where you most want it (the style and datum accessor props). No built-in support for large dataset virtualization — if you have 50k points and aren't on the canvas renderer, you're on your own.

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 →