The evidence behind CanvasXpress as a dependency you can trust: automated visual regression across the chart library, continuous integration, cross-browser rendering, and reproducibility built into the engine.
pixel-snapshot baselines
chart types under test
distributions in lockstep (npm, CRAN, PyPI)
or less — release cadence
Every change is gated by a pixel-level regression suite. A headless browser renders each example and compares it, pixel for pixel, against a stored baseline image — 634 baselines spanning the chart families (heatmaps and dendrograms, scatter and line, boxplot and violin, network, genome, circular/Circos, Venn, treemap, meter and bullet, and the ggplot grammar-of-graphics parity corpus). A change is not considered done until the relevant suite is green with zero new diffs.
Tolerances are deliberate: standard charts must match within a tight pixel ratio; animated or layout-randomized families (network, genome, circular, oncoprint) use wider, per-example tolerances, and a small set of genuinely non-deterministic renders is explicitly tracked rather than silently ignored. The suite is committed in the repository (tests/regression/) and runnable by anyone.
CanvasXpress builds and validates through automated workflows on every release, including the build itself, the release pipeline, and the regression gate that exits non-zero on any new visual diff. Issue reproduction, ggplot-parity checks, and example generation are automated as well, so the same standard applies whether a change is a one-line fix or a new chart type.
*.min.js is generated, never hand-edited.CanvasXpress renders to the standard HTML5 Canvas API and runs in all current evergreen browsers — Chrome, Firefox, Safari and Edge — on desktop and mobile. The regression suite runs in a headless Chromium; the canvas rendering path is not browser-specific.
Quality is not only tests. Every CanvasXpress figure serializes its complete state — data, layout, transforms and selections — to a single portable JSON specification (meta.cxplot), so a chart reproduces exactly, and every interaction is recorded as a replayable operation (the audit trail). Every rendered canvas also carries a WCAG 2.1 screen-reader alternative (role="img" + a generated aria-label) that regenerates whenever the chart updates.
In the interest of an honest picture: a published bundle-size and tree-shaking story, a first-party ESM build, first-party TypeScript definitions, and a public reproducible performance benchmark are on the roadmap and not yet shipped. We would rather state that plainly than imply otherwise.
The source, the build, and the full regression harness are public. Browse the code and tests at github.com/neuhausi/canvasXpress, review how the project is maintained in GOVERNANCE.md, and read the user-facing CHANGELOG.md.