# BackstopJS

Visual regression testing tool that captures screenshots of a web app over time and compares them against approved references.


Source: https://findsoftware.frbit.cloud/backstopjs/
Last reviewed: 2026-10-28
Listed since: 2026-10-28

## Record

### Links

- home: https://garris.github.io/BackstopJS/
- repository: https://github.com/garris/BackstopJS
- docs: https://github.com/garris/BackstopJS/blob/master/README.md

### Identity

- status: active
- maintainer: Garris Shipon
- maintainerType: individual
- parent: unknown
- firstRelease: 2014
- hqCountry: unknown

### Kind

- category: testing
- hosting: not applicable
- language: javascript
- runtime: node
- runtimeMin: node 16
- basedOn: unknown

### Content

- contentStore: not applicable
- databases: not applicable
- adminUi: not applicable
- headlessApi: not applicable
- templating: not applicable
- i18n: not applicable

### Rendering and deploy

- runsAs: local
- renderingModes: not applicable
- installMethod: npm install -g backstopjs

### License

- licenseModel: open-source
- license: MIT

### Releases

- currentMajor: 6
- latestReleaseDate: 2024-09-07

### Adoption

- githubStargazers: 7190
- packagistDownloads: not applicable
- npmWeeklyDownloads: 111010
- contributors: 157
- pluginCount: unknown
- packagistMonthlyDownloads: unknown
- ecosystemsMonthlyDownloads: unknown
- httpArchiveSites: unknown
- wordpressActiveInstalls: unknown
- dependentRepos: 2576
- dependentPackages: 178

### Sources

- urls: https://garris.github.io/BackstopJS/ (read 2026-10-28)
- urls: https://api.github.com/repos/garris/BackstopJS (read 2026-10-28)
- urls: https://github.com/garris/BackstopJS/blob/master/README.md (read 2026-10-28)
- maintainer: https://raw.githubusercontent.com/garris/BackstopJS/master/LICENSE (read 2026-10-28)
- language: https://api.github.com/repos/garris/BackstopJS (read 2026-10-28)
- category: https://github.com/garris/BackstopJS/blob/master/README.md (read 2026-10-28)
- runtime: https://raw.githubusercontent.com/garris/BackstopJS/master/package.json (read 2026-10-28)
- runtimeMin: https://raw.githubusercontent.com/garris/BackstopJS/master/package.json (read 2026-10-28)
- installMethod: https://github.com/garris/BackstopJS/blob/master/README.md (read 2026-10-28)
- installMethod: https://github.com/garris/BackstopJS/blob/master/README.md (read 2026-10-28)
- runsAs: https://github.com/garris/BackstopJS/blob/master/README.md (read 2026-10-28)
- license: https://api.github.com/repos/garris/BackstopJS (read 2026-10-28)
- licenseModel: https://raw.githubusercontent.com/garris/BackstopJS/master/LICENSE (read 2026-10-28)
- firstRelease: https://api.github.com/repos/garris/BackstopJS/releases (read 2026-10-28)
- currentMajor: https://registry.npmjs.org/backstopjs/latest (read 2026-10-28)
- latestReleaseDate: https://registry.npmjs.org/backstopjs (read 2026-10-28)
- githubStargazers: https://api.github.com/repos/garris/BackstopJS (read 2026-10-28)
- contributors: https://api.github.com/repos/garris/BackstopJS/contributors (read 2026-10-28)
- npmWeeklyDownloads: https://api.npmjs.org/downloads/range/2026-09-28:2026-10-04/backstopjs (read 2026-10-28)
- dependentPackages: https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/backstopjs (read 2026-10-28)
- dependentRepos: https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/backstopjs (read 2026-10-28)

## Notes

BackstopJS runs visual regression tests on a web app. It loads each scenario in a headless browser, captures screenshots of the page or of selected elements at one or more viewport sizes, and compares them with reference images saved from an earlier run. Differences appear in an HTML report, where a person can approve the new screenshots as the next reference. Scenarios live in a JSON or JavaScript config file, and clicks, hovers and key presses run through Puppeteer or Playwright scripts.

The tool runs on Node.js. It is installed globally with npm for the command line, or locally in a project so that a Node script can call it. The README also describes a Docker image, started with a flag, that renders the tests in a container for consistency across environments. Reference and test images are written to a folder in the project, `backstop_data` by default.

## Worth knowing

The README's News section says BackstopJS needs a new maintainer or owner.

---

Data licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Attributes are recorded, never scored; absent means unknown.
Credit, in full: FindSoftware, CC BY 4.0
