BackstopJS
Free, self-hosted visual regression testing driven by a JSON config.
What it is
BackstopJS scripts Playwright or Puppeteer to capture screenshots of configured scenarios, compares them against committed reference images, and produces an HTML report with a diff view. Everything is local: baselines are files in your repository and there is no service, no quota and no data leaving your infrastructure.
Best for
Where it is strong
- Free with no snapshot quota — run it as often as you like.
- Baselines stay in your repository, which suits regulated or air-gapped environments.
- Simple JSON configuration that a junior engineer can extend.
Where it falls short
- Pixel-diff comparison means font rendering differences between machines cause false failures; Docker is effectively mandatory.
- No hosted review or approval workflow — approving means committing new images.
- Reference images bloat the Git repository over time.
Pricing
Free and open source
Open sourceFree tier: Everything, self-hosted
What drives the bill: Free and open source. You pay in engineering time and CI minutes.
Check current pricing on OSS community’s siteFigures are indicative and were last reviewed August 2026. Vendors change pricing often; confirm before you commit.
Works with
What people who use BackstopJS say
No reviews of BackstopJS yet. If you have used it in anger, yours would be the first.
Alternatives to BackstopJS
If BackstopJS is not the right fit, these solve the same problem differently.
Lost Pixel
Visual Testing
Being sunset: open-source visual regression whose team has joined Figma.
Argos
Visual Testing
Open-source visual testing with a GitHub-native review experience.
Percy
Visual Testing
Visual review as a pull-request check, integrated with your existing E2E suite.
