Recharts

A composable charting library for React, built on D3 and SVG.

Library
npm
v3.10.1
27,617 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
91 /100 Excellent
Development Activity 100
Maintenance 96
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
87 /100 Excellent
Architecture 88
Code Quality 90
Innovation 85
Learning Curve 85

Recharts is a charting library built specifically for React, wrapping D3’s scale and shape math behind a declarative component API. Instead of imperatively wiring up SVG paths and axes, you compose charts from independent React components — <LineChart>, <XAxis>, <Tooltip>, <CartesianGrid>, <Line> — the same way you’d compose any other part of a React tree.

Under the hood, an internal Redux store (via @reduxjs/toolkit) coordinates shared chart state — axis domains, tooltip position, legend payloads, brush selection — across the independently-rendered child components, so each shape or axis component can read the layout it needs without prop drilling. The result is a library that covers the common chart types (line, bar, area, pie, radar, scatter, funnel, treemap, sankey, sunburst) with a consistent, TypeScript-typed API and full SVG output for styling and accessibility.

What You Get

  • A full set of chart types out of the box: LineChart, BarChart, AreaChart, PieChart, RadarChart, ScatterChart, ComposedChart, FunnelChart, Treemap, Sankey, and SunburstChart
  • Composable primitives (XAxis, YAxis, CartesianGrid, Tooltip, Legend, Brush, ReferenceLine/Area) that combine freely across chart types
  • First-class TypeScript types for every component’s props, generated and verified via an internal omnidoc tooling pipeline
  • A ResponsiveContainer component for automatic chart resizing inside fluid layouts
  • Built-in animation support for entering, updating, and transitioning data without extra animation libraries
  • Native SVG output, so charts inherit CSS styling, are inspectable in devtools, and support standard accessibility attributes

Common Use Cases

  • Adding dashboards and analytics views to a React or Next.js admin panel
  • Rendering time-series and financial charts (line/area) with custom tooltips and reference lines
  • Building comparison visualizations (bar, radar, pie) for reports or marketing pages
  • Visualizing hierarchical or flow data with Treemap, Sankey, and Sunburst chart types
  • Embedding lightweight, themeable charts in a design system alongside other UI components

Under The Hood

Architecture Recharts is a React charting library built on a layered architecture with a Redux-based internal state layer (src/state, using @reduxjs/toolkit) for cross-component communication of chart options, axis configuration, tooltip state, and synchronized data across composed chart primitives (CartesianChart.tsx, PolarChart.tsx, CategoricalChart.tsx). It renders SVG output via composable shape/component primitives (src/shape/Sector.tsx, src/component/Tooltip.tsx) wired together through React context providers (src/context/chartLayoutContext.tsx, tooltipContext.tsx) that broadcast layout and axis data down to consumer components without prop drilling. Chart types like LineChart, BarChart, AreaChart, PieChart, RadarChart, Sankey, Treemap, and SunburstChart are themselves declarative React component trees composed from these primitives (AreaChart.tsx, Treemap.tsx), while a victory-vendor dependency supplies D3-derived scale/shape math, and RechartsWrapper.tsx handles the top-level SVG canvas plus mouse/keyboard event dispatch through dedicated Redux middleware (mouseEventsMiddleware.ts, keyboardEventsMiddleware.ts).

Tech Stack A TypeScript-first codebase (98.6% TS) targeting React 16.8–19 and react-dom via broad peer-dependency ranges, using @reduxjs/toolkit + react-redux + reselect + immer for internal state, es-toolkit and decimal.js-light for utility/numeric precision, eventemitter3 for pub/sub, and victory-vendor for D3 scale/shape primitives. It’s built via Babel for a dual CJS/ES6 output plus a separate webpack UMD bundle, tested with Vitest (unit, mutation testing via Stryker, and visual regression via Playwright/Docker), linted with ESLint/Prettier, and documented via a custom omnidoc pipeline that auto-generates API docs and Storybook args from source comments.

Code Quality The repo has an exceptionally large test suite — 351 spec files under test/, mirroring the src/ directory 1:1 (test/cartesian/Area.spec.tsx, test/state/*), including typed variants (.typed.spec.tsx) that assert on TypeScript prop inference, animation-specific specs, and stacked/edge-case specs (Brush.stacked.spec.tsx). Combined with dedicated mutation testing (Stryker) and visual-regression testing (Playwright against Docker), this points to a mature, quality-conscious codebase. Naming is consistent (a Props type exported alongside each component, *Slice.ts for each Redux slice), and internal helper code favors tiny-invariant for fail-fast assertions.

API Design The public API in src/index.ts is large but consistently shaped — every component exports both the component and a Props type (SurfaceProps, LegendProps, TooltipProps), following idiomatic React “compose declarative JSX” ergonomics (<LineChart><XAxis/><Tooltip/><Line/></LineChart>) that requires minimal boilerplate to get a working chart, per the README’s own three-line example. The tradeoff is a steep prop surface once customizing tooltips, axes, or animation, but a generated Storybook, auto-generated API docs (via the omnidoc toolchain), and an extensive www documentation site significantly offset that with runnable, live-editable examples for nearly every primitive.

Used by 127 apps in this directory

Python
65%
Other

Onyx

AI Agents · AI Assistants · Knowledge Management

32,380

Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.

View details
92
Repo Health
83
Technical
68
Dependency
Built with
Python 65%
TypeScript 25%
Updated today
TypeScript
96%

Open Scouts

AI Agents · Automation

1,374

Create automated AI scouts that continuously search the web and send email alerts when they find what you're looking for.

View details
33
Repo Health
65
Technical
69
Dependency
Built with
TypeScript 96%
Updated 4 months ago
TypeScript
94%
MIT

open-seo

Developer Tools · Marketing

22,917

Pay-as-you-go open source SEO platform with MCP integration — keyword research, rank tracking, backlinks, site audits, and AI brand visibility in one self-hosted tool.

View details
83
Repo Health
79
Technical
77
Dependency
Built with
TypeScript 94%
Updated 2 days ago
TypeScript
83%
AGPL 3.0

OpenStatus

Devops · Monitoring

9,178

Open-source status pages and uptime monitoring with global synthetic checks, monitoring-as-code, and AI agent integration via MCP.

View details
77
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 83%
MDX 14%
Updated yesterday
TypeScript
84%
MIT

OpenCut

Design Tools · Social Media · Video Editors

93,371

Free, open-source video editor for web, desktop, and mobile — no watermarks, no subscriptions, built with a Rust core and plugin-first architecture

View details
72
Repo Health
67
Technical
84
Dependency
Built with
TypeScript 84%
Rust 14%
Updated 2 weeks ago
Rust
60%
GPL 3.0

openfootmanager

Game Development

1,135

A free and open source football management simulation game built with Rust and Tauri, inspired by Football Manager.

View details
95
Repo Health
79
Technical
73
Dependency
Built with
Rust 60%
TypeScript 39%
Updated yesterday
TypeScript
88%
AGPL 3.0

OpenPanel

Analytics

7,111

Open-source Mixpanel alternative with session replay, MCP integration, and privacy-first product analytics you fully control.

View details
75
Repo Health
74
Technical
65
Dependency
Built with
TypeScript 88%
MDX 10%
Updated yesterday
TypeScript
55%
Other

OpenReplay

Analytics

12,968

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
91
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 55%
Go 13%
Updated yesterday
TypeScript
93%
Apache 2.0

Openship

Devops · Hosting Control Panel

14,642

Openship is an open-source, self-hostable deployment platform that points at a repo and builds, ships, routes, and TLS-terminates the app — driven from a desktop app, web dashboard, or CLI.

View details
84
Repo Health
85
Technical
65
Dependency
Built with
TypeScript 93%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers