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

TypeScript
100%
MIT

Llama Coder

AI Development · Low Code Platforms

7,135

Generate multi-file web apps from a single prompt using open-source LLMs — an open-source alternative to Claude Artifacts.

View details
60
Repo Health
66
Technical
69
Dependency
Built with
TypeScript 100%
Updated 3 weeks ago
TypeScript
95%
Other

LLM Gateway

AI Development · Devops

1,680

One API endpoint for 25+ LLM providers — route, track costs, enforce compliance, and switch models without changing your code.

View details
86
Repo Health
80
Technical
68
Dependency
Built with
TypeScript 95%
Updated yesterday
TypeScript
97%
MPL 2.0

Logto

Authentication

14,663

Open-source auth infrastructure for SaaS and AI apps with OIDC, SAML, and RBAC

View details
92
Repo Health
83
Technical
63
Dependency
Built with
TypeScript 97%
Updated today
TypeScript
44%
Other

Magic

AI Agents · Automation · Low Code Platforms

5,048

Magic is an enterprise-grade open-source AI agent platform combining a generalist AI agent, workflow engine, IM, and collaborative office system for running an AI-powered digital workforce.

View details
69
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 44%
PHP 32%
Updated 1 months ago
JavaScript
98%
Other

Markdrop

Note Taking

358

Visual drag-and-drop markdown editor with GitHub-specific blocks, cloud sync, and offline PWA support

View details
38
Repo Health
57
Technical
69
Dependency
Built with
JavaScript 98%
Updated 6 months ago
TypeScript
99%
Apache 2.0

Mastra Code

AI Code Assistants

28,674

"A coding agent that never compacts" — a terminal-based AI coding agent built on the Mastra framework, with Observational Memory instead of context compaction, multi-model support, and OAuth login for Claude Max or ChatGPT Plus.

View details
90
Repo Health
73
Technical
65
Dependency
Built with
TypeScript 99%
Updated today
TypeScript
88%
Apache 2.0

Medplum

Authentication · Databases · Developer Tools

2,735

An open-source, FHIR-native healthcare platform that gives developers a compliant backend, authentication, a React component library, and serverless bots to build clinical applications in weeks instead of years.

View details
93
Repo Health
90
Technical
71
Dependency
Built with
TypeScript 88%
Updated today
TypeScript
44%
MIT

MentraOS

AI Development · Developer Tools

2,381

The open source operating system and SDK that lets developers build one app and run it across smart glasses from Even Realities, Vuzix, Mentra Live, and more.

View details
92
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 44%
Java 20%
Kotlin 12%
Updated today
TypeScript
96%
AGPL 3.0

Midday

Invoicing Finance · Productivity

15,071

All-in-one AI-powered business operations platform for freelancers and solo entrepreneurs to manage invoicing, time tracking, banking, and financial intelligence.

View details
52
Repo Health
78
Technical
67
Dependency
Built with
TypeScript 96%
Updated 3 months 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