Recharts

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

Library
npm
v3.10.1
27,653 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

Go
75%
AGPL 3.0

Coder

Code Editors · Developer Tools · Devops

17,157

Self-hosted cloud development environments and AI coding agents — defined in Terraform, connected via WireGuard, automatically shut down when idle.

View details
91
Repo Health
90
Technical
66
Dependency
Built with
Go 75%
TypeScript 23%
Updated 5 days ago
TypeScript
45%
Other

Convex Backend

Databases · Developer Tools

12,754

Open-source reactive database that lets developers build live-updating apps with pure TypeScript, strong consistency, and real-time subscriptions—no separate API layer required.

View details
88
Repo Health
82
Technical
65
Dependency
Built with
TypeScript 45%
Rust 43%
Updated 5 days ago
TypeScript
93%
AGPL 3.0

CourseLit

Blogging · Ecommerce

1,284

Open-source, self-hosted LMS for selling online courses, digital downloads, and building communities on your own branded website.

View details
63
Repo Health
74
Technical
67
Dependency
Built with
TypeScript 93%
Updated 6 days ago
Rust
67%
Other

DefGuard

Authentication · Networking · Security

2,882

Self-hosted secure remote access that unifies WireGuard VPN, identity management, and connection-level MFA in one open-source platform.

View details
86
Repo Health
82
Technical
71
Dependency
Built with
Rust 67%
TypeScript 30%
Updated 6 days ago
TypeScript
97%
MIT

DenchClaw

AI Agents · CRM

1,660

An AI-native CRM you self-host on your own machine, built on the OpenClaw agent framework, with a DuckDB backend and pre-built agent skills for managing contacts, deals, reports, and 500+ outreach integrations from natural-language chat.

View details
47
Repo Health
73
Technical
71
Dependency
Built with
TypeScript 97%
Updated 4 months ago
TypeScript
88%
MIT

DevTools-X

Developer Tools

1,540

41 offline-first developer utilities in a single 10MB cross-platform desktop app — no Electron, no cloud, no compromise.

View details
48
Repo Health
68
Technical
68
Dependency
Built with
TypeScript 88%
Updated 5 months ago
Go
75%
MIT

Digger

Automation · Developer Tools · Devops

5,057

Run Terraform and OpenTofu natively inside your existing CI pipeline — no separate runners, no third-party secrets, no extra compute costs.

View details
78
Repo Health
73
Technical
66
Dependency
Built with
Go 75%
TypeScript 15%
Updated 1 weeks ago
TypeScript
91%
MIT

Dittofeed

Automation · Marketing

3,022

Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.

View details
72
Repo Health
75
Technical
62
Dependency
Built with
TypeScript 91%
Updated 2 weeks ago
Python
58%
MIT

Docglow

Data Engineering

151

A next-generation documentation site generator for dbt Core projects — lineage explorer, health scoring, and full-text search for teams without access to dbt Cloud's built-in docs features.

View details
69
Repo Health
65
Technical
79
Dependency
Built with
Python 58%
TypeScript 41%
Updated 5 days ago

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