vsCompare / Chromatic

Keep your stories. Lose the snapshot bill.

Chromatic renders every story in its own browser cloud and bills each one. stateofpixel reviews the screenshots your CI already takes and bills only for the storage they use.

Install the GitHub AppSee the switch

Facts about Chromatic checked on 27 September 2026, with 11 sources.

A month of visual tests

300 stories, 3 viewports, 400 builds, 360,000 screenshots

  • stateofpixelFree, 5.5 GB stored$0
  • ChromaticPro + 275,000 extra$2,599
Price it for your suite

Where the screenshots come from. That one choice decides what can drift, and what you are billed for.

ChromaticBilled per snapshot
  1. 1Your CI builds Storybook or records a test archive
  2. 2The build uploads to Chromatic
  3. 3Chromatic's browsers render every story
  4. 4Chromatic compares and sets the check
stateofpixelBilled per GB stored
  1. 1Your tests take screenshots
  2. 2The CLI hashes and compares them on the runner
  3. 3Only images we have not seen upload
  4. 4The review page and the GitHub check

What changes when you switch. The same pull request, reviewed with less in the way.

01One rendererYour tests already render in CI. We compare those pixels, so there is no second browser that disagrees with your test run.
02Browsers and modes don't multiply the billChromatic bills tests x builds x browsers x modes. We bill for bytes stored, and an unchanged screenshot is one hash.
03The free plan never stops CIChromatic's free plan pauses testing and review for the rest of the month. Ours warns, waits 14 days, then passes the check with a note.

What your reviewers get. Each changed screenshot next to its baseline, with the changed pixels in red.

  • Four views. Side by side, diff, slider and flip.
  • Keyboard first. j and k to move, a to approve, r to reject.
  • One check. Green when every change is approved.
Try the review page
The stateofpixel review page, with the baseline and the new screenshot side by side and the changed pixels in red

Price it for your suite. Move the sliders. Every tool here bills for this many screenshots a month, except stateofpixel.

Screenshots a month360,000

stateofpixelFree, 5.5 GB stored$0 /mo
ChromaticPro + 275,000 extra$2,599 /mo

$31,188 a year less than Chromatic.

Screenshots are stories x viewports x browsers x builds. For stateofpixel, 5% of screenshots change per build at 80 KB each, and pull request images are kept 60 days. The cheapest list plan for each tool, before tax, from Chromatic pricing on 27 September 2026. TurboSnap can lower Chromatic's count.

Side by side. Every row about Chromatic links to the page it came from.

stateofpixelChromatic

Pricing

What you pay forStorage. Snapshots, builds and seats are free.Snapshots: tests x builds x browsers x modes. A TurboSnap copy costs a fifth of one.12
Free plan10 GB stored, unlimited snapshots.5,000 snapshots a month, Chrome only.3
First paid plan$15 a month for 25 GB.Starter, $179 a month for 35,000 snapshots, then $0.008 each. Monthly billing only.13
At the plan limitWarns at 80%. After 14 days over, new images are not stored and the check passes with a note.On Free, testing and review pause until next month. Paid plans bill the extra.34
SeatsNone. Access comes from GitHub roles.Unlimited collaborators.3

Screenshots

Who takes themYour CI.Chromatic's Capture Cloud, from your Storybook or a test archive.56
Where they are comparedYour CI, before anything uploads.Chromatic's cloud.6
BrowsersWhatever your CI runs.Chrome, Firefox, Safari and Edge. Free is Chrome only.35
Test runnersPlaywright, Storybook, or any tool that writes PNG files.Storybook, Playwright, Cypress and Vitest.678

Platform

Git hostsGitHub.GitHub, GitLab and Bitbucket.9
Build historyDefault branch builds kept. Pull request builds 60 days after close, 7 to 365 days.At least 12 months on every plan.10
Open sourceNo. Closed source for now.The CLI is MIT licensed.11

Where Chromatic is ahead. We skip some features on purpose. If you need one of these, choose Chromatic.

Browsers you don't runChromatic renders Safari, Firefox and Edge for you. With stateofpixel, your CI renders every browser you want to compare.
Storybook featuresModes, accessibility tests, TurboSnap and a published Storybook. stateofpixel only compares the PNG files you give it.
GitLab and BitbucketChromatic links to both. stateofpixel works with GitHub only.
Threaded review commentsChromatic's UI Review has discussions on each change. stateofpixel has approve, and reject with an optional comment.

Switch in one pull request. Keep your tests. Change the step that sends screenshots to Chromatic.

  1. 1Install the GitHub AppPick the repositories. On GitHub Actions there is no token to copy.
  2. 2Replace the Chromatic stepThe capture uses the Playwright in your project, at each width you list.
  3. 3Merge to mainThat build becomes the baseline. There is nothing to export from Chromatic.

Before

.github/workflows/visual.yml
steps:
  - run: npm ci
  - name: Run Chromatic
    uses: chromaui/action@latest
    with:
      projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}

After

.github/workflows/visual.yml
permissions:
  id-token: write

steps:
  - run: npm ci
  - run: npx storybook build
  - run: npx stateofpixel storybook storybook-static --viewports 375,1280

Questions. What to know before you move from Chromatic.

Can I keep my Storybook stories as they are?

Yes. stateofpixel storybook opens your built Storybook and captures every story at each width. A story named Button/Primary becomes the snapshot Button/Primary [chromium 1280].

Why is stateofpixel cheaper than Chromatic?

Chromatic runs a browser for every snapshot. stateofpixel never runs a browser: your CI renders and compares, and our server stores the images that changed. Storage is the only cost we pass on.

What about Playwright tests on Chromatic?

Import snapshot() from stateofpixel/playwright and add the reporter. The screenshot comes from your test's own browser, and the reporter uploads when the run ends.

Do I lose my Chromatic baselines?

You start fresh. The first build on your default branch becomes the baseline, and pull requests compare against it from then on.

Sources

Read on 27 September 2026. Prices are list prices before tax. The stateofpixel column comes from our docs.

  1. 1Chromatic billing
  2. 2Chromatic TurboSnap
  3. 3Chromatic pricing
  4. 4Chromatic free plan limit
  5. 5Chromatic browsers
  6. 6Chromatic for Playwright
  7. 7Chromatic for Cypress
  8. 8Chromatic for Vitest
  9. 9Chromatic access
  10. 10Chromatic build expiry
  11. 11chromatic-cli license

Every pixel, reviewed.
Nothing ships by surprise.

Install the GitHub AppRead the quickstart