← Back to all sparks
A

ApexCharts

ANALYTICS
Velocity10.0

Open-source JavaScript charting library for interactive data visualizations

Licensing settled, ApexCharts is back to changing what a chart can take as input.

chartingraw-data-inputchart-morphingpremium-tieringtree-shakingpackaging
Current state
ApexCharts is deep into a fast v6 line, shipping roughly weekly. The licensing arc that dominated 6.5 through 6.7 — trial watermarks, the first premium-gated chart type, then entitlement checks — has settled, and the last three releases are library work again. 6.9.0 is the largest of them: a histogram type that bins raw samples, a morph engine that conserves marks across chart types, and the end of the library's dependency-free packaging.
Where it's heading
The through-line now is input and arrangement rather than catalogue size. Charts increasingly accept the measurements a team actually has instead of pre-aggregated values, and the seams that let you hand a chart its own layout — plotOptions.unit.positions, the pluggable layout hook — are being filled in with kits rather than hard-coded options. The premium boundary has stopped moving; the free catalogue keeps growing around it.
Prediction
Expect the raw-observation pattern to reach another chart type now that the bar pathway handles binning, and expect the remaining pluggable seams to get companion kits the way positions just did.

Recent moves

  1. 1d ago

    Unit charts get a 39-shape companion kit

    The kit for the seam 6.9.0 opened: apexcharts/unit-shapes supplies 39 arrangements a count can take, each a function of the marks and the plot rectangle rather than a fixed template, so one shape serves a 40-dot sparkline and a 3,000-dot poster. Outer name labels let a shaped crowd of dots read without a legend. The release also fixes updates that changed only a callback, which were being swallowed.

    View source ↗
  2. 2d ago

    Histogram bins raw samples; charts morph between types

    ⚡ SPARK

    The largest release of the v6 line so far, and the one that changes what the library accepts. Three types now take raw observations and do the statistics themselves, the cross-type morph engine conserves marks instead of crossfading, and ApexCharts stops being dependency-free. It lands right after the licensing arc closed, which is where the arc's attention went.

    View source ↗
  3. 9d ago

    Per-data-point label offsets land as functions

    The first release after three consecutive licensing moves is pure library work: dataLabels.offsetX and offsetY now accept functions, letting labels that collide between series be pushed apart per data point. Routing that resolution through one shared helper flushed out four latent defects across the line, radar and bar paths. Area sparklines lose the empty strip under the fill, the only visual change.

    View source ↗
  4. 10d ago

    Pie and donut slice clicks work again after a 6.7.0 regression

    A patch cleaning up after 6.7.0, where a mis-bound event handler broke slice clicks on pie and donut charts and took dataPointSelection and the drilldown demo down with it. Semicircle pie, donut and sunburst also stop reserving a full circle's worth of space above a bottom legend. A one-day turnaround on a selection regression fits the release cadence the v6 line has kept all month.

    View source ↗
  5. 16d ago

    Sunburst charts arrive; premium features now need an entitled plan

    ⚡ SPARK

    Two things ship together: sunburst, a free hierarchical chart type, and a tightening of the licence check from any valid key to an entitled plan. That pairing is the shape of the whole v6 arc — the free catalogue keeps growing while enforcement on the paid layer gets stricter.

    View source ↗
  6. 22d ago

    Unit chart is the first premium-gated chart type

    ⚡ SPARK

    The `unit` chart — dot clusters, pictograms, waffles, beeswarms — is the first chart type the library has ever put behind a key, one release after licensing appeared at all. 6.5.0 had stated no chart types were gated; 6.6.0 gates one.

    View source ↗