Skip to content

v2.0 • Data • 14kb gzipped • MIT

ChartForge

Canvas charts in twelve lines. Responsive, accessible and dark-mode ready, with no D3 learning curve.

★ 5.5kGitHub
↓ 16.2k / week● MIT● TS 5.0+
chartforge-preview.png
Abstract preview graphic for ChartForge

// why chartforge

Built for speed

One API covers bar, line and donut. Canvas under the hood, accessibility on top. Drop it into any framework and ship the same afternoon.

● 19ms render● 60fps● 0 deps

// stack

Vanilla-first

Works with React, Vue, Svelte or a plain script tag. Server-side rendering safe, with no window access at import time.

ChartForge started as a single file in a client project and stayed small on purpose. It does one job, it does it in 14kb gzipped, and it has no runtime dependencies.

Getting started

Install it, import it, call it:

npm i chartforge-js

One API covers bar, line and donut. Canvas under the hood, accessibility on top. Drop it into any framework and ship the same afternoon.

What it does not do

It does not manage your state, style your components or ship a plugin system. Those are your decisions, and keeping them out is what keeps the bundle honest.

  • Zero-dependency canvas
  • Realtime streams
  • MIT licensed, commercially friendly

Features

Zero-dependency canvas

No D3, no SVG bloat. 14kb gzipped and 60fps by default, even with four series on screen.

Realtime streams

Push points at 60fps without a re-layout. Built for dashboards that never stop moving.

Export built in

One call produces PNG, SVG or the underlying values as CSV.

Six themes

Token-driven, so bringing your own palette is a single object.

ESM and types

Ships module and CommonJS builds with hand-written type definitions and source maps.

Off the main thread

Heavy work moves to a worker automatically when one is available.

Get ChartForge v2.0

6 files • .min.js 14kb • .zip 90kb • sha384 verified

Changelog

v2.0 Sep 10 2026 • latest
  • Donut chart and animated bars
  • Accessibility pass, AA contrast throughout
  • Render time down by a third
v1.9 Aug 5 2026
  • Type definitions rewritten by hand
  • Dropped the last runtime dependency
v1.8.3 May 18 2026
  • Safari 16 compatibility fixes
  • Bundle size reduced by eleven percent
View full archive →

// related

Related products

Aug 30 • v3.2.1

MotionEase

Physics-based micro-animations with a single call. Spring curves that feel right without a tuning session.

View →
Aug 19 • v1.9.4

FormFlow

Validation and multi-step logic that works the same in React, Vue and vanilla. Your markup stays yours.

View →
Aug 08 • v4.0

DataSync

Offline-first sync for IndexedDB with conflict resolution you can actually reason about.

View →

Ship the dashboard today.

MIT licensed. Commercial friendly. Five-minute setup.