{"meta":{"name":"FindSoftware","page":"https://findsoftware.frbit.cloud/backstopjs/","markdown":"https://findsoftware.frbit.cloud/backstopjs.md","license":"https://creativecommons.org/licenses/by/4.0/","attribution":"FindSoftware, CC BY 4.0","note":"Attributes are recorded, never scored. An absent field means unknown, never zero and never bad."},"record":{"id":"backstopjs","name":"BackstopJS","urls":{"home":"https://garris.github.io/BackstopJS/","repository":"https://github.com/garris/BackstopJS","docs":"https://github.com/garris/BackstopJS/blob/master/README.md"},"category":["testing"],"description":"Visual regression testing tool that captures screenshots of a web app over time and compares them against approved references.","maintainer":"Garris Shipon","maintainerType":"individual","firstRelease":2014,"hosting":null,"language":"javascript","runtime":["node"],"runtimeMin":"node 16","contentStore":null,"databases":null,"adminUi":null,"headlessApi":null,"templating":null,"i18n":null,"runsAs":["local"],"renderingModes":null,"installMethod":"npm install -g backstopjs","licenseModel":"open-source","license":"MIT","currentMajor":"6","latestReleaseDate":"2024-09-07T00:00:00.000Z","githubStargazers":7190,"contributors":157,"packagistDownloads":null,"npmWeeklyDownloads":111010,"dependentRepos":2576,"dependentPackages":178,"checkedAt":"2026-10-28T00:00:00.000Z","addedAt":"2026-10-28T00:00:00.000Z","sources":[{"field":"urls","url":"https://garris.github.io/BackstopJS/","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"urls","url":"https://api.github.com/repos/garris/BackstopJS","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"urls","url":"https://github.com/garris/BackstopJS/blob/master/README.md","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"maintainer","url":"https://raw.githubusercontent.com/garris/BackstopJS/master/LICENSE","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"language","url":"https://api.github.com/repos/garris/BackstopJS","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"category","url":"https://github.com/garris/BackstopJS/blob/master/README.md","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"runtime","url":"https://raw.githubusercontent.com/garris/BackstopJS/master/package.json","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"runtimeMin","url":"https://raw.githubusercontent.com/garris/BackstopJS/master/package.json","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"installMethod","url":"https://github.com/garris/BackstopJS/blob/master/README.md","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"installMethod","url":"https://github.com/garris/BackstopJS/blob/master/README.md","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"runsAs","url":"https://github.com/garris/BackstopJS/blob/master/README.md","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"license","url":"https://api.github.com/repos/garris/BackstopJS","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"licenseModel","url":"https://raw.githubusercontent.com/garris/BackstopJS/master/LICENSE","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"firstRelease","url":"https://api.github.com/repos/garris/BackstopJS/releases","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"currentMajor","url":"https://registry.npmjs.org/backstopjs/latest","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"latestReleaseDate","url":"https://registry.npmjs.org/backstopjs","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"githubStargazers","url":"https://api.github.com/repos/garris/BackstopJS","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"contributors","url":"https://api.github.com/repos/garris/BackstopJS/contributors","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"npmWeeklyDownloads","url":"https://api.npmjs.org/downloads/range/2026-09-28:2026-10-04/backstopjs","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"dependentPackages","url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/backstopjs","checkedAt":"2026-10-28T00:00:00.000Z"},{"field":"dependentRepos","url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/backstopjs","checkedAt":"2026-10-28T00:00:00.000Z"}],"status":"active","ai":"authored"},"prose":"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.\n\nThe 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.\n\n## Worth knowing\n\nThe README's News section says BackstopJS needs a new maintainer or owner."}