finds.dev← search

// the find

ankane/chartkick

★ 6,526 · Ruby · MIT · updated Mar 2026

Create beautiful JavaScript charts with one line of Ruby

Chartkick wraps Chart.js, Google Charts, and Highcharts behind a single Ruby helper API, so you can drop a line-chart into an ERB template without touching JavaScript. It's been around since 2013 and is the de-facto choice for Rails devs who want charts fast without building a frontend. Pairs well with Groupdate for time-series aggregations.

The abstraction holds up well — one helper method covers the common chart types across three different charting backends, and the `library:` escape hatch means you're not boxed in when you need something the wrapper doesn't expose. The URL data source pattern (render JSON from a controller, pass the path to the helper) is a genuinely good idea that keeps charts from blocking page load. The JavaScript API (`chart.updateData`, `chart.refreshData`) gives you enough control for reactive dashboards without rewriting the wrapper. Active maintenance from ankane, who has a track record of keeping Ruby gems current.

Highcharts has a commercial license — Chartkick doesn't warn you about this, so someone could accidentally ship it in a commercial product and owe money. The abstraction leaks constantly: prefix/suffix/precision options only work on Chart.js and Highcharts, geo charts and timelines only work on Google Charts, and you'll be checking the docs every time to see what's supported where. The bundled `Chart.bundle.js` vendor file (Chart.js + date-fns adapter in one blob) makes version pinning opaque — you can't easily upgrade Chart.js independently. No React/Vue/Stimulus integration story; in a modern Rails app with a JS framework, you'll fight the ERB-centric helper pattern.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →