Suggest a tool

BackstopJS vs Loki: open-source visual regression tools compared

Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.

Summary

BackstopJS: Visual regression testing tool that captures web app screenshots and compares them against approved references.

Loki: Visual regression testing tool for Storybook covering Chrome, iOS simulator and Android emulator targets.

Both are listed under Visual regression. The table gives repository metrics from the GitHub API with their fetch date, then the documented facts used for every comparison in this category, each linked to the README or docs page it comes from. A cell reads "not documented" when the fact was not found in the project's documentation; that does not mean the feature is absent.

Side by side

BackstopJS and Loki: metrics and documented facts, in the fixed row order used for visual regression comparisons.
FactBackstopJSLoki
Stars7,18111,9091
Forks62111831
Contributors1761651
Last release2019-01-2112024-08-271
Last commit2026-09-0812024-10-121
Commits in 90 days1101
LicenseMIT1MIT1
Primary languageJavaScript1JavaScript1
Statusactive1inactive1
BrowsersChrome Headless via Puppeteer; Chromium, Firefox, WebKit via Playwright source: READMEChrome (in Docker, in AWS Lambda, or local app); iOS simulator; Android emulator source: README
Framework integrationsPlaywright and Puppeteer scripts for user interactions source: READMEStorybook (React and React Native) source: Docs: Getting started
Test authoring formatJSON or JavaScript config file (backstop.json) with scenarios; onBefore and onReady scripts source: READMEExisting Storybook stories, captured and compared by the loki CLI source: Docs: Getting started
CI integrationCI report for build systems such as Jenkins and Travis source: READMECI guide: static Storybook build with the --requireReference flag source: Docs: Continuous Integration
Report formatsIn-browser HTML report, CLI report, JUnit XML, JSON source: READMEScreenshot output and image diff folders (.loki/current, .loki/difference) source: Docs: Command line arguments
Install methodnpm (npm install -g backstopjs) source: READMEyarn (yarn add loki --dev, then yarn loki init) source: README

1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.

When each fits

Written from each project's documented scope, not from preference. Neither tool is ranked.

BackstopJS

Fits projects that run visual regression tests on web apps by comparing screenshots over time; its README describes rendering tests in a Docker container. source: README

Loki

Fits projects that run visual regression tests on Storybook stories; its README describes targets including Chrome in Docker, iOS simulator and Android emulator. source: README

More on these tools

Sources

  1. GitHub REST API: repository, read
  2. GitHub REST API: repository, read
  3. GitHub REST API: contributors, read
  4. GitHub REST API: contributors, read
  5. GitHub REST API: latest release, read
  6. GitHub REST API: latest release, read
  7. GitHub REST API: commits, read
  8. GitHub REST API: commits, read
  9. README, read
  10. README, read
  11. Docs: Getting started, read
  12. Docs: Continuous Integration, read
  13. Docs: Command line arguments, read

Documented facts collected 2026-09-22. See the methodology for how metrics and facts are gathered.