← All comparisons

Chart.ts vs Victory (Formidable)

Victory is a React charting library by Formidable. It renders to SVG and has a composable API, but is React-only with a D3 dependency chain that inflates bundle size.

FeatureChart.tsVictory
Bundle size<15kb min+gzip (entire library)~50kb min+gzip
Tree-shakingFull (import only what you use)Partial (D3 dependencies limit it)
TypeScriptBuilt-in, strict mode, full inferenceBuilt-in types
SSRNative SSR, works with any frameworkPartial (some components need client)
AccessibilityWCAG AA, keyboard nav, screen readers, pattern fillsBasic SVG roles
Tailwind CSSNative className on every element, dark: variantsNot native (inline styles)
Chart types65+ built-in (52 core + 13 WebGL/3D)~12 built-in
FrameworksReact, Vue, Svelte, Solid, Angular, Vanilla JSReact and React Native only
LicenseMITMIT
RenderingTriple engine: SVG + Canvas + WebGL (auto-switching at 10k/100k points)SVG only
Real-TimeBuilt-in streaming, WebSocket, SSE, HTTP polling via @chartts/websocketNo streaming
GPU / 3DWebGL renderer + @chartts/gl with 13 3D chart types (Scatter3D, Surface3D, Globe3D, etc.)No
Financial@chartts/finance: SMA, EMA, RSI, MACD, Bollinger Bands, ATR, VWAP, Sharpe ratioNo
PluginsdefineChartType() with render context, hit testing, custom scalesNo
InteractionsZoom, pan, brush selection, crosshair, linked chartsZoom via VictoryZoomContainer
Advanced ChartsSankey, treemap, sunburst, chord, geo maps, network graphs, 3D globe12 types (basic)
Theme Presets34 presets (Nord, Dracula, Catppuccin, Tokyo Night, Material, etc.)Material, grayscale

Why switch from Victory?

Chart.ts advantages

  • 65+ chart types vs 12
  • Works with any framework, not React-only
  • Native Tailwind className vs inline styles
  • Built-in WebGL/3D and streaming
  • Full financial chart support

Victory limitations

  • React only, no Vue/Svelte/Solid/Angular
  • D3 dependency inflates bundle size
  • Inline styles, not Tailwind-native
  • No Server Component support
  • Limited chart types compared to alternatives

Ready to switch?

Get started with Chart.ts in 30 seconds.

$npm install @chartts/core