Skip to content

Arincen ChartsFinancial charts in 14 KB

A canvas charting engine with zero dependencies, in two builds — one that carries everything, and one that has the rest compiled out.

In thirty seconds

js
import { createChart, AreaSeries } from '@arincen/charts';

const chart = createChart(document.getElementById('chart'), { autoSize: true });
const series = chart.addSeries(AreaSeries, { lineColor: '#2962ff', lineWidth: 2 });

series.setData([
    { time: '2026-01-01', value: 24.10 },
    { time: '2026-01-02', value: 24.83 },
    { time: '2026-01-05', value: 24.41 },
]);

chart.timeScale().fitContent();

Note the third data point. The gap over the weekend is not drawn as empty space — bars are placed by their position in the data, never by elapsed time. That is the right default for market data, and the wrong one for a sensor log.

Why another charting library

Because most of what a financial charting library carries, most pages never use. Panes, logarithmic scales, custom series and touch tracking are all real features and all structural, which means a bundler cannot remove them: the core genuinely references them, and nothing can prove your page has only one pane.

So the removal happens earlier, at build time. @arincen/charts does not contain the code for what it leaves out. chart.panes is not a method that returns an empty array — it does not exist.

That is the whole idea. Everything else is a charting library.

Released under the MIT licence. Lightweight Charts™ is a trademark of TradingView, Inc. This project is not affiliated with or endorsed by TradingView.