garris/backstopjs

Catch CSS curve balls.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 31 minutes ago
Added to GitGenius on September 9th, 2026
Created on October 15th, 2014
Open Issues & Pull Requests: 578 (+0)
GitHub issues: Enabled
Number of forks: 620
Total Stargazers: 7,179 (+0)
Total Subscribers: 111 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 10.5 hours
Mean response time: 264.5 days
90th percentile: 365.6 days
Tracked items: 35

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 97% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 4% of issues opened in the past year have been closed. Three people close 58% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 39
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,084 days
Stale 30+ days: 37
Stale 90+ days: 37

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (1)
  • help wanted (1)

Most active issues this week

Detailed Description

BackstopJS is a visual regression testing tool that automates screenshot comparison to catch unintended CSS changes in web applications.

The tool solves the problem of detecting visual regressions by capturing screenshots of web pages, storing them as reference images, and comparing new screenshots against those references to identify rendering differences. It uses Chrome Headless for rendering and supports user interaction simulation through Playwright or Puppeteer scripts, with integrated Docker rendering to ensure consistent results across different platforms.

BackstopJS suits teams building web applications who want to prevent CSS changes from breaking layouts unexpectedly. It works well in CI/CD pipelines and integrates with source control workflows. The tool can be installed globally for standalone use or locally as a Node.js package that can be required directly into applications. The workflow is straightforward: initialize a project with URLs and viewport configurations, run tests to generate screenshots, review visual diffs in an in-browser reporting interface, and approve changes to update reference images for future comparisons.

The project maintains active CI testing through automated reference test workflows. The tool includes a browser-based reporting UI with filtering, diff inspection, and approval capabilities, alongside CLI reporting and JUnit output for integration with testing frameworks. Development activity shows ongoing maintenance of core functionality and CI infrastructure.