v2.0 • Data • 14kb gzipped • MIT
ChartForge
Canvas charts in twelve lines. Responsive, accessible and dark-mode ready, with no D3 learning curve.

// 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.
// 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
- Donut chart and animated bars
- Accessibility pass, AA contrast throughout
- Render time down by a third
- Type definitions rewritten by hand
- Dropped the last runtime dependency
- Safari 16 compatibility fixes
- Bundle size reduced by eleven percent
// related
Related products
MotionEase
Physics-based micro-animations with a single call. Spring curves that feel right without a tuning session.
View →FormFlow
Validation and multi-step logic that works the same in React, Vue and vanilla. Your markup stays yours.
View →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.