Catch visual changes before they ship. Render screenshots in your own CI, review every pixel diff here, and merge on a green check.
Your CI does the rendering. We store the images, keep the baselines and set the check.
Capture in your CI
Playwright, Storybook or any folder of PNGs. Screenshots render on your runners, next to your tests.
Upload what changed
The CLI diffs against the baseline and uploads only new images. Unchanged pixels never leave CI.
Review and merge
Approve changes with the keyboard. The GitHub check turns green when every change is approved.
Two lines in your workflow. GitHub Actions signs in with OIDC, so there is no token to copy.
permissions:
id-token: write
steps:
- run: npx playwright test
- run: npx stateofpixel upload screenshotsPay for storage, nothing else. Storage is the only cost that grows for us, so it is the only thing we bill.
- No per-snapshot fees
- Capture every state of every component.
- No per-seat fees
- The whole team can review.
- Storage only
- A generous free tier, then pay for what you keep.
Every pixel, reviewed.
Nothing ships by surprise.