← All comparisons

Chart.ts vs Nivo

Nivo provides beautiful React chart components built on D3. It has great defaults but is React-only and the D3 dependency makes bundles large.

FeatureChart.tsNivo
Bundle size<15kb min+gzip (entire library)~40kb min+gzip (per chart package)
Tree-shakingFull (import only what you use)Good (separate packages)
TypeScriptBuilt-in, strict mode, full inferenceBuilt-in types
SSRNative SSR, works with any frameworkPartial (canvas charts need client)
AccessibilityWCAG AA, keyboard nav, screen readers, pattern fillsGood (ARIA labels)
Tailwind CSSNative className on every element, dark: variantsNot native (theme config object)
Chart types65+ built-in (52 core + 13 WebGL/3D)~20 built-in
FrameworksReact, Vue, Svelte, Solid, Angular, Vanilla JSReact only
LicenseMITMIT
RenderingTriple engine: SVG + Canvas + WebGL (auto-switching at 10k/100k points)SVG + Canvas (per chart)
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 WebGL/3D
Financial@chartts/finance: SMA, EMA, RSI, MACD, Bollinger Bands, ATR, VWAP, Sharpe ratioNo
PluginsdefineChartType() with render context, hit testing, custom scalesNo plugin system
InteractionsZoom, pan, brush selection, crosshair, linked chartsBasic hover only
Advanced ChartsSankey, treemap, sunburst, chord, geo maps, network graphs, 3D globe15 types (no 3D, limited financial)
Theme Presets34 presets (Nord, Dracula, Catppuccin, Tokyo Night, Material, etc.)Custom theme object

Why switch from Nivo?

Chart.ts advantages

  • 65+ chart types vs 15
  • Works with any framework, not React-only
  • Native Tailwind className vs custom theme objects
  • Built-in WebGL/3D and financial charts
  • Smaller bundle with no D3 dependency

Nivo limitations

  • React only
  • Large per-chart bundles due to D3
  • Theme system is separate from Tailwind
  • No className prop on chart elements
  • Cannot use dark: variants directly

Ready to switch?

Get started with Chart.ts in 30 seconds.

$npm install @chartts/core