Zoom to the change
A 30-pixel change on a 1440-pixel page fills the panel instead of hiding in it.
Free up to 35,000 snapshots a month
Peekdrift screenshots every Storybook story in a pinned Linux browser, compares only what changed, and gives your team one place to approve it. GitHub checks update the moment someone decides.
Checkout / Summary · light · desktop
ChangedBaseline
New
Unchanged areas shadowed, changes lit
Strobe: baseline and new, flipping
One command in CI. Peekdrift renders your Storybook in a pinned browser, compares it with what you approved, and reports on the pull request.
01
npx peekdrift builds Storybook and uploads it. Only files that changed since last time are sent, and the job exits right away.
02
Every story, theme and viewport renders in a pinned Linux browser, in a disposable sandbox per build. Animations, clocks, randomness and fonts are frozen, so the same code gives byte-identical screenshots.
03
Accept or reject each change in the browser. The peekdrift check turns green and the pull request comment updates in place, without re-running CI.
jobs:
visual:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0 # baselines follow your git history
- uses: actions/setup-node@v7
- run: npm ci
- uses: peekdrift/action@v1
with:
projectToken: ${{ secrets.PEEKDRIFT_PROJECT_TOKEN }}
exitOnceUploaded: true
Prefer your Storybook never to leave your infrastructure? Take the screenshots in your own CI with peekdrift capture and upload only the images; both ways give identical results.
Everything a reviewer needs to decide in seconds, and everything a team needs to trust the result.
A 30-pixel change on a 1440-pixel page fills the panel instead of hiding in it.
Shadow everything that didn't change, flip between versions, or drag a divider across them.
J/K to move, A to accept, R to reject. The next pending change opens on its own.
Each build compares against the closest approved ancestor commit, so branches never fight over one baseline.
One status and one pull request comment per project, updated in place as reviews happen.
With --only-changed, Peekdrift follows your Storybook's imports from the changed files to the stories they affect. The rest keep their approved images and don't count toward your snapshots.
Catch the bug that only shows in Safari's engine. Each browser is its own snapshot with its own baseline.
Every story is checked with axe-core while it's on screen, and new violations are flagged next to the visual changes.
Images live in private, encrypted storage under a separate path for each organization, are never shared between organizations, and are served through links that expire within the hour.
Every plan includes every feature and unlimited projects. A snapshot is one story in one theme at one viewport, counted when it's uploaded; limits reset on the 1st of each month.
$0
35,000 snapshots / month
$29/mo
100,000 snapshots / month
$99/mo
500,000 snapshots / month
Prices in US dollars, billed monthly through Stripe. Upgrade, downgrade or cancel from your organization's billing page.
Peekdrift renders stories in short-lived spot capacity, stores every file and image once by its content hash, and only runs pixel comparisons on images whose hash changed. A typical build costs us a fraction of a cent, and we pass that on.
Every capture runs in the same pinned Linux browser image, with animations frozen, the clock fixed, randomness seeded and fonts loaded before the shot. We test that repeated runs, and runs on our servers versus in your CI, produce byte-identical images. Screenshots from macOS or Windows are never used as baselines.
No. The upload step returns as soon as the images are sent. Make the peekdrift status a required check to gate merges. If you'd rather block in CI, --wait does that.
Today you replace the Chromatic step in your workflow with the two Peekdrift commands above. A mode that accepts your existing Chromatic CLI options unchanged is on the way.
New uploads are refused with a clear message until the 1st of next month or until you upgrade. Nothing is billed automatically: there are no overage charges.
In private, encrypted AWS storage in the US (Oregon). Images are only reachable through links that expire within the hour, and each organization's images are kept under their own path and never shared with another organization.
Set up a project in a couple of minutes. Free up to 35,000 snapshots a month.
Start free