← All comparisons

Chart.ts vs Visx (Airbnb)

Visx is Airbnb's collection of low-level D3-based React visualization primitives. Great for custom viz but requires significant assembly.

FeatureChart.tsVisx
Bundle size<15kb min+gzip (entire library)~25kb min+gzip (varies by modules)
Tree-shakingFull (import only what you use)Good (separate packages)
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 fillsManual implementation
Tailwind CSSNative className on every element, dark: variantsPossible but not native
Chart types65+ built-in (52 core + 13 WebGL/3D)Build from primitives
FrameworksReact, Vue, Svelte, Solid, Angular, Vanilla JSReact 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/websocketManual
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 scalesN/A (primitives)
InteractionsZoom, pan, brush selection, crosshair, linked chartsManual
Advanced ChartsSankey, treemap, sunburst, chord, geo maps, network graphs, 3D globeBuild from primitives
Theme Presets34 presets (Nord, Dracula, Catppuccin, Tokyo Night, Material, etc.)No presets

Why switch from Visx?

Chart.ts advantages

  • 65+ ready-made charts vs assemble-it-yourself
  • Works with any framework, not React-only
  • Simple declarative API vs low-level primitives
  • Built-in streaming, WebGL, and financial charts
  • No D3 knowledge required

Visx limitations

  • React only
  • Low-level primitives, not ready-made charts
  • Requires deep D3 knowledge
  • No simple API for common charts
  • Significant assembly required for basic charts

Ready to switch?

Get started with Chart.ts in 30 seconds.

$npm install @chartts/core