Skip to content
testcritic

BackstopJS

Free, self-hosted visual regression testing driven by a JSON config.

Visual TestingOpen sourceSelf-hostable
Visit BackstopJS

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

Teams that need visual testing without a SaaS vendor or a per-snapshot bill.

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 source

Free 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 site

Figures are indicative and were last reviewed August 2026. Vendors change pricing often; confirm before you commit.

Works with

PlaywrightPuppeteerDockerJenkinsGitHub Actions

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.

Explore all alternatives