Skip to content
Visual review for the merge path

Merge with your eyes open.

Your tests can be green while the product is broken. Reshot captures critical flows from the real app, shows what changed, and makes a named reviewer decide before it merges.

Review · every changed context in one decisioncaptured from Reshot
The Reshot review sheet open on a commit, listing each changed visual with how much of it changed and a link to its diff.
A real Reshot review. Every visual the commit changed, with the amount it moved, waiting on one named decision.
How it works

Define flows. Capture every change. Block the break.

A Flow is one critical journey. Its contexts are captured together, reviewed in one PR-native workspace, and billed as one unit.

01 · Define

Describe the journey as code

Keep the flow key, steps, and variants alongside the product.

02 · Capture

Run it in CI

Reshot captures the contexts your team actually needs to trust.

03 · Decide

Review the evidence

Approve or reject the visual change with an attributable decision.

reshot.config.json
{
  "scenarios": [{
    "key": "checkout",
    "steps": [{ "action": "screenshot", "key": "checkout" }]
  }]
}
reshot publishschematic

$ pnpm reshot publish --project storefront

captureevery context in the flow
uploadassets verified
reviewchanged contexts queued
·gatereshot/visual-review pending
A publish reports a hard failure when a new flow exceeds plan capacity.
The problem

AI ships faster than you can look.

Your test suite is blind to the screen. The states that break are the ones no one checks by hand: admin and member, dark mode, German, empty data, and their combinations.

Coverageschematic
flowowner · darkmember · lightde-DE · empty
checkout/paymentΔ
settings/billing
onboarding/first-runΔΔ
One flow is one journey. Roles, themes, locales, and data states stay grouped.
Why Reshot

Verify complete authenticated flows, not isolated components.

Reshot owns the context matrix, visual diff, review decision, required status gate, audit trail, and always-fresh approved result.

Real auth, real data states

Run against localhost or your CI environment with the accounts and fixtures your team trusts.

One PR-native decision

Every changed flow and context is grouped under the commit that caused it.

Human judgment where it matters

Product, design, QA, or engineering approve from the dashboard. Invite them free — no GitHub seat required.

Agents · beta

Give coding agents visual evidence.

Agents can inspect the same flow matrix and diffs before a person reviews the pull request. Human approval stays the final governance boundary.

Agent review queue

checkout · admin · dark — agent changed navigation · awaiting approval

settings · member · de-DE — before and after ready

onboarding · empty state — required check passed · audit event recorded

Governance

Automation gathers evidence. People own the decision.

Keep an immutable decision trail for every visual change, and run captures in infrastructure you control.

  • Real authenticated product flows
  • Every role, theme, locale, and data state
  • Named approval before a change ships
Decision historyschematic
  1. capture publishedci runner
  2. candidate reviewednamed reviewer
  3. baseline advancedcheckout/payment
  4. merge gate passedthe commit that caused it
Automation gathers the evidence; every decision keeps its human or machine actor.

Bring-your-own-storage is a storage-only path. It replaces the hosted review queue and version history rather than adding to them.

Read the security overview

Start with one flow

Stop merging blind.

Free on your CI in minutes. Start with one critical flow and see every role, theme, locale, and data state before it ships.