# Chartist 2.2 revives a mature SVG charting library with composable layers, SSR and terminal output

After years of limited development, Chartist released v2.0 on October 16 and v2.2 on October 20. Its new scene graph and functional API support composable charts, CSS styling, server-rendered markup and optional terminal output, while legacy chart classes remain wrapped for migration.

Chartist 2.x replaces its SVG charting internals with layers and server rendering, while retaining 1.x wrappers. New 2.1–2.2 export moves require migration checks.

- Status: Active
- Published: 2026-10-27T16:24:19+13:00
- Updated: 2026-10-27T16:24:19+13:00
- Categories: Web Development, JavaScript, Developer Tools
- Tags: Chartist, data visualisation, JavaScript, open source, SVG
- Canonical HTML: https://beyondthe.news/dossiers/chartist-2-svg-charting-library-composable-scene-graph-ssr-migration

## What changed

Chartist 2.0.0 shipped October 16, 2026, with a rewritten core pipeline, typed scene nodes, composable layers, multiple axes, CSS custom-property theming, SVG text labels and a functional lineChart/barChart/pieChart API. Legacy LineChart/BarChart/PieChart classes wrap the new presets, with a compatibility plugin, rather than being immediately removed. Version 2.1.0 on October 18 added server rendering and hydration via the chartist/server entry point; version 2.2.0 on October 20 added the @chartist-js/essentials and @chartist-js/tooltips packages, axis transforms, log axes and trendline layers. Some symbols moved out of the root export between 2.0 and 2.2.

## Why it matters

Chartist has existed since 2014 and is embedded in many web projects. The revived architecture offers a lightweight SVG-and-CSS alternative to heavier charting stacks, now including SSR and hydration for server-rendered sites and terminal/text outputs. Teams on Chartist 1.x can explore the new composable API without assuming an instant rewrite is mandatory, but should pin minor versions, inspect export moves and test CSS and plugin compatibility. Project-site usage figures are self-reported and not independent proof of production adoption or reliability.

## A scene graph replaces a single chart-class abstraction

Chartist 2.0's new pipeline separates chart data, layout and renderers into typed scene nodes and layers. Developers can compose multiple axes and overlay custom layers instead of depending entirely on fixed line, bar and pie classes. SVG remains the core rendering format, with CSS custom properties controlling appearance.

## Server-side rendering arrived in 2.1

Chartist 2.1 introduced a chartist/server entry point, renderToString and renderForHydration support. A server can produce SVG markup and a browser can adopt that markup for interaction. The old renderToString root export moved to chartist/server; code importing it from chartist must change.

## Version 2.2 adds optional modules but moves exports

Chartist 2.2 added @chartist-js/essentials for axis titles, logarithmic axes, trend and target lines and value labels, plus @chartist-js/tooltips. trendLine and targetLine no longer come from the chartist root; imports and stylesheets must move to the essentials package. This is a documented breaking change even within the early 2.x line.

## Migration requires testing, not only npm install

The project retains 1.x class wrappers, but custom plugins, Sass settings, responsive behaviour and DOM assumptions can differ. Test chart rendering and hydration in the target framework, compare generated markup and review optional package CSS. The library's claimed package size and adoption counts should be treated as project-reported until measured independently.

## Key details

- Chartist 2.0.0 released October 16, 2026; 2.1.0 October 18; 2.2.0 October 20.
- 2.0 introduced composable layers, a scene graph, functional chart APIs, typed events and CSS-variable styling.
- Legacy 1.x LineChart/BarChart/PieChart classes wrap the new API for compatibility.
- 2.1 added SSR and hydration, with renderToString moved to chartist/server.
- 2.2 added optional essentials and tooltips packages; trendLine/targetLine moved to essentials.
- The project reports broad npm/repository usage; these figures were not independently audited.

## Builder takeaways

- For existing Chartist sites, pin the intended 2.x release and test plugins and chart output before deployment.
- For SSR, import rendering functions from chartist/server and verify hydration against your framework.
- Move trendLine and targetLine imports and styles to @chartist-js/essentials on 2.2.
- Consider the functional layer API when building custom charts rather than extending legacy classes.
- Benchmark bundle size and rendering in your actual site rather than relying on headline comparisons.

## What to watch

- 2.x stability and migration reports from large 1.x installations.
- Independent SSR/hydration compatibility testing across frameworks.
- Ecosystem support for new layer, tooltip and terminal packages.

## Uncertainties

- No independent large-sample regression or performance benchmark was identified.
- Legacy plugin compatibility varies and is not guaranteed by class wrappers.
- Adoption and package-size claims originate from the project.

## Sources

- [Chartist releases v2.0.0, v2.1.0 and v2.2.0](https://github.com/chartist-js/chartist/releases) — Chartist GitHub · primary releases · 2026-10-20T00:00:00+13:00. Exact version dates, composable architecture, SSR and breaking export moves.
- [Chartist v2 documentation and demos](https://chartist.dev/) — Chartist · primary documentation · 2026-10-20T00:00:00+13:00. Current functional API, optional packages and project usage claims.
- [Frontend Focus issue 763](https://frontendfoc.us/issues/763) — Frontend Focus · independent specialist discovery · 2026-10-21T00:00:00+13:00. Independent newsletter notes project revival and SSR.
- [Chartist v2 developer discussion](https://www.reddit.com/r/javascript/comments/1x7d937/chartist_v2_we_brought_the_10yearold_svg_charting/) — Reddit r/javascript · community discussion · 2026-10-16T00:00:00+13:00. Author confirms revival goals, 1.x compatibility aim and early release candidate; not an independent benchmark.

