Chromatic vs Argos for Visual Regression Testing
Compare Chromatic and Argos by Storybook fit, Playwright workflow, review, CI, and cost—and choose a visual regression setup that suits your team.
Short answer: Start by evaluating Chromatic if Storybook is where your team defines and reviews component states: its official Storybook addon turns stories into visual tests and brings review into Storybook. Evaluate Argos closely if you want a documented Playwright reporter and screenshot helper in CI, or if its published screenshot allowances fit your expected usage. Both products support more than one workflow, so make the decision with a small proof of concept in your own CI.
Neither service is a universal winner. Compare how your team captures UI states, establishes baselines, reviews diffs, handles CI access, and pays for snapshot volume. Pricing and product details can change; the current figures below are attributed to Argos’s own pricing page.
1. What visual regression testing does
A visual regression test captures a rendered UI state and compares it with an approved baseline image. A difference signals that pixels changed; a person decides whether the change is intended or a bug. If it is intentional, accepting the update replaces the baseline so later changes are measured against the new appearance.
Visual checks complement functional tests. A page can pass assertions about navigation and button behavior while a CSS change hides a button, shifts a layout, or changes text styling. A visual diff can flag that rendered change, but it cannot decide whether the new appearance is correct.
The quality of the workflow depends heavily on the states you choose to capture. Include representative variations such as loading, empty, error, disabled, long-content, and responsive states where they matter. Keep test data and rendering conditions stable so changes in data, time, fonts, animation, or environment do not obscure real regressions.
2. How the workflows differ
Chromatic: Storybook-first, with other test integrations
Storybook describes Chromatic as a cloud visual-testing service made by the Storybook team. Its visual-testing workflow treats each Storybook story as a test. The official @chromatic-com/storybook addon adds a Visual Tests panel where a team can run tests and review changes. The initial build creates baselines; subsequent builds compare against them. Storybook also documents CI paths for providers including GitHub Actions, GitLab Pipelines, Bitbucket Pipelines, CircleCI, Jenkins, and Azure Pipelines. See the Storybook visual testing guide.
Chromatic also documents integrations for Vitest, Playwright, and Cypress. In its Playwright integration, test pages are archived and uploaded so Chromatic can generate snapshots and pixel diffs in its cloud. The archive preserves page material for investigation in Chromatic’s app. That model differs from a workflow that primarily uploads screenshot files captured locally. See Chromatic for Playwright and its archive explanation.
Argos: screenshot capture and reporting in CI
Argos documents a Playwright SDK/reporter workflow. The reporter uploads screenshots from CI, and its Playwright package provides an argosScreenshot helper for capturing UI states. Its quickstart calls for a baseline build on the default branch before pull-request comparisons can be made against a reference. Teams should check the current Argos documentation for setup details for their particular runner and Git provider.
Argos also publishes Storybook setup material. The distinction is therefore not “Chromatic can test Storybook and Argos cannot.” Instead, compare the exact capture and review path you want, especially how your team already represents states and how it wants to investigate changes.
At a glance
| Decision area | Chromatic | Argos |
|---|---|---|
| Storybook | Official Storybook addon; stories become visual tests, with a review panel in Storybook. | Publishes Storybook setup material; verify the current flow against the team’s needs. |
| Playwright | Extends Playwright test/expect utilities; uploads page archives for cloud snapshot generation and pixel diffing. | Documented Playwright reporter and screenshot helper; uploads screenshots and traces from CI according to its setup material. |
| Baseline setup | First build establishes baselines; later changes require review and acceptance or a fix. | Run a baseline build on the default branch before comparing pull requests. |
| Review and debugging | Visual changes are reviewed in Chromatic; Playwright page archives can be inspected in its app. | Review uploaded screenshots and diffs in the Argos workflow; consult current docs for trace and debugging details. |
| Published pricing example | Check Chromatic’s current official pricing and billing pages; do not rely on a competitor’s quoted price. | Argos lists Hobby at $0 for up to 5,000 screenshots and Pro starting at $100/month including 35,000 screenshots. |
3. Choose based on your UI-state catalog
When to start with Chromatic
- Your team already uses Storybook as the shared catalog of component states.
- You value an official addon and reviewing component-level visual changes from Storybook.
- You want to assess its documented Vitest, Playwright, or Cypress options as well as the Storybook flow.
- You need to compare its cloud capture and review model with the way your team debugs failures.
Storybook’s documentation recommends using its addon during development and running visual tests in CI as changes approach merge. Accepted baselines can be synchronized so reviewers do not need to approve the same change twice. See the documented workflow.
When to evaluate Argos closely
- Your visual cases already live in Playwright tests, and a reporter plus screenshot helper is a natural fit.
- You want screenshots captured in the existing test run and uploaded from CI.
- Argos’s current plan limits, collaboration options, retention, and access controls match your requirements.
- You want to compare its published screenshot-volume terms against your measured expected usage.
These are evaluation criteria, not a guarantee that either product supports every detail of your CI or access-control setup. Confirm the exact integration and plan terms with each vendor’s current documentation.
Decision table
| If this describes your team | First evaluation | What to verify |
|---|---|---|
| Stories are the main source of component states | Chromatic | Addon behavior, review permissions, baseline flow, and snapshot billing. |
| Existing Playwright tests define the states | Run both in a representative test | Capture changes required, CI setup, artifacts available for debugging, and reviewer experience. |
| Usage volume is the main concern | Compare current plan calculators and terms | How each counts tests or screenshots, included quota, overage charges, and what happens at the limit. |
| Cross-browser testing is required | Verify current product configuration | Supported browser targets and which plan or setup includes them. Do not infer exact coverage from general product descriptions. |
| Pull requests come from forks or restricted CI contexts | Test your actual repository setup | Token or OIDC configuration, permissions, status checks, and whether secrets are available to the workflow. |
4. Run a useful proof of concept
A short, controlled comparison will expose workflow differences that a feature checklist cannot. Use the same UI states, CI environment, and pull request for both tools.
- Select a few stable states. Include a normal state, a long-content or responsive state, and one state with data or interaction setup representative of your app.
- Establish a baseline. For Chromatic, run the first build to create baselines. For Argos, make the required baseline build on the default branch.
- Run from your actual CI. Check the behavior on a normal pull request, including the Git provider status check and required credentials.
- Make one intentional UI change. Confirm that a reviewer can identify it, approve it, and update the baseline without confusion.
- Introduce one accidental visual change. Check whether the diff makes the issue easy to locate and whether the failure provides enough context to debug.
- Review noise and stability. Repeat a run without code changes. Look for changes caused by animation, dynamic content, fonts, time, network dependencies, or environment drift.
- Estimate real monthly use. Count the states captured per build, builds per month, and browser or viewport variants. Compare the resulting usage and the plan features you need.
- Record the decision. Compare setup effort, reviewer clarity, baseline handling, flaky capture handling, access control, retention, and expected total price.
This is a recommended evaluation method, not a report of hands-on testing. Your result depends on your application, CI configuration, and current vendor terms.
5. Setup examples
The snippets below show the shape of each documented workflow. They are not interchangeable: Chromatic’s Playwright setup uses its extended test utilities, while Argos uses its reporter and screenshot helper. Follow the linked vendor instructions for current package versions, project setup, authentication, and options.
Chromatic with Storybook
For the Storybook addon, the documented installation command is:
npx storybook@latest add @chromatic-com/storybook
After linking the addon to a Chromatic project, run a first build to create baselines and review later changes in the Visual Tests panel. For CI, Storybook documents provider-specific setup and project-token authentication. The exact workflow file depends on your CI provider; see the official guide.
Chromatic with Playwright
Chromatic’s documented flow requires its Playwright integration and a Chromatic build step. Add the integration to your tests as directed by the Playwright setup guide, then run your Playwright tests and Chromatic upload command:
npx playwright test
npx chromatic --playwright -t=YOUR_CHROMATIC_PROJECT_TOKEN
The integration captures page archives during the test run and uploads them; Chromatic then generates snapshots in its cloud. The documentation says Chrome must be included in the Playwright configuration for this integration. Do not put a project token in committed code; supply it through your CI secret mechanism.
Argos with Playwright
Install the documented packages:
npm install --save-dev @argos-ci/cli @argos-ci/playwright
Add the reporter in CI while preserving Playwright’s normal reporter:
import { defineConfig } from "@playwright/test";
export default defineConfig({
reporter: process.env.CI
? [["list"], ["@argos-ci/playwright/reporter"]]
: [["list"]],
});
Capture a state with the Argos helper in a Playwright test:
import { argosScreenshot } from "@argos-ci/playwright";
import { test } from "@playwright/test";
test("homepage visual state", async ({ page }) => {
await page.goto("https://your-app.example/");
await argosScreenshot(page, "homepage");
});
Replace the example address with a test environment you control. Configure the Argos token using the current CI instructions, then run the default-branch baseline build before expecting pull-request comparisons. Confirm the helper’s current signature and any reporter options in the Argos documentation.
What about cURL, Python, and Node.js?
Chromatic and Argos are visual regression testing workflows, not general-purpose screenshot endpoints in the code examples above. Their documented integrations run through Storybook or browser-test tooling. If your goal is simply to capture a website image by making an HTTP request, that is a different task; the service example below is for that use case.
6. Pricing, usage, and operating cost
Argos published terms
Argos’s pricing page currently lists a Hobby plan at $0 with up to 5,000 screenshots, and a Pro plan starting at $100 per month with 35,000 screenshots included. It also lists additional screenshot rates and optional SSO prices. These are Argos-published terms and may change; check the current pricing page for the exact plan conditions and usage calculator before purchasing.
Chromatic pricing and snapshot accounting
Do not treat a Chromatic price quoted on Argos’s comparison page as independently verified current pricing. Check Chromatic’s official pricing and billing documentation directly. Chromatic’s billing documentation describes captured snapshots, copied TurboSnap snapshots, and bypassed snapshots as having different billing treatment: captured snapshots count as one billed snapshot, copied TurboSnap snapshots as 0.2, and bypassed snapshots as zero. Usage depends on tests, builds, browsers, modes, and configuration.
For either service, estimate volume from your actual build frequency and UI-state count rather than the number of test files alone. Include reruns, browser variants, themes or modes, and pull-request activity. Also compare any usage limits, overage policy, data retention, collaboration features, support, and access-control requirements. A low headline price can be a poor fit if a required feature or usage level changes the total cost.
Performance and reliability
Neither the supplied research nor the cited product documentation establishes an independent head-to-head performance benchmark. Do not assume one will make your pipeline faster without measuring your own run. Compare time added to CI, concurrency behavior, reliability across repeated captures, and the time reviewers spend understanding a diff.
For stable captures, keep test data predictable, wait for the page state you intend to test, control animation and clocks where necessary, load fonts consistently, and avoid depending on mutable third-party content. Use the product’s documented options for handling dynamic regions rather than broadly hiding large parts of the page. Keep the baseline branch current and make baseline acceptance part of code review.
7. Troubleshooting visual test failures
| Symptom | Likely cause | What to do |
|---|---|---|
| First pull request has no meaningful comparison | No baseline exists yet, or the baseline build was not completed on the expected branch. | Complete the initial Chromatic build or Argos default-branch baseline build, then rerun the pull request. |
| Chromatic Playwright command fails to run | Playwright browser configuration omits Chrome, which Chromatic documents as required for its integration. | Include Chrome in the Playwright configuration and follow the current Chromatic setup guide. |
| CI cannot authenticate or publish a build | Missing, invalid, or unavailable project token; forked pull requests may not receive secrets. | Check the secret name and scope, confirm it is available to that workflow, and follow the vendor’s current token or OIDC instructions. |
| Changes appear on every run | Unstable content such as animation, timestamps, randomized data, late fonts, or external requests. | Make test input deterministic, wait for the correct state, and use targeted ignore or stabilization options documented by the service. |
| Argos reports no screenshots or comparisons | The reporter is not active in CI, the helper was not called, upload credentials are missing, or a baseline has not been created. | Check reporter configuration, test output, token availability, and baseline build status; compare with the current Argos quickstart. |
| Diff is hard to interpret | The captured state includes too much unrelated content or the test does not isolate the intended UI. | Capture a focused component or stable page state; remove irrelevant dynamic content and add a separate test for important states. |
| Usage is higher than expected | Each build may capture multiple states, browsers, viewports, or modes; reruns also add usage. | Inspect per-build usage and the vendor’s billing definition, then trim redundant states or configure documented selective capture. |
8. ScreenshotNeo for direct website captures
Chromatic and Argos address visual regression workflows: baselines, diffs, and review. If your immediate need is to request a clean screenshot of a URL, ScreenshotNeo is a separate website screenshot API and MCP server from Yorker Media. A single GET request returns PNG, JPEG, WebP, or PDF output. It is the alternative to try first for direct screenshot capture because it removes known cookie banners, newsletter popups, and chat widgets before a capture, and only clean shots are billed.
One-call website screenshot
See the ScreenshotNeo API documentation for parameters and output options. Use your API key in place of the placeholder, and choose a URL you are permitted to capture.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
For Node.js, add response handling before saving the bytes in a production script; check the response status and preserve the returned content type or choose the output format in the request. Keep API keys in environment variables rather than source control. These calls capture a URL; they do not create visual regression baselines or replace Chromatic or Argos’s review workflow.
When it fits
ScreenshotNeo supports full-page and selector captures, device presets and custom viewports, dark mode, retina scale, PDF settings, custom CSS and JavaScript, click and wait options, request blocking, headers, cookies, user agent, authorization, timezone, geolocation, transparent backgrounds, resizing, cache TTL, signed links, async jobs with signed webhooks, bulk capture, a usage API, and an OpenAPI specification. Its parameter names also work with those used by other screenshot APIs to make migration easier.
It can also accept a cookie or consent banner like a visitor and remove 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Responses identify page outcomes with X-Page-Verdict and billing with X-Billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. For AI-agent workflows, ScreenshotNeo provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
Plans include 1,000 screenshots per month free with no card, then Starter at $5 for 3,000, Growth at $15 for 15,000, Pro at $39 for 60,000, Scale at $99 for 250,000, and Business at $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Sign up for 1,000 free screenshots a month with no card.
9. Frequently asked questions
Can I use both Chromatic and Argos?
Yes, a team can evaluate or use more than one workflow, though duplicating the same states in two services can increase setup and review work. Define a clear purpose for each before keeping both.
Does a visual diff prove that a change is a bug?
No. It reports a rendered difference from the baseline. A reviewer decides whether the change was intended and whether the new appearance is acceptable.
Is a screenshot API a substitute for visual regression testing?
No. A screenshot API captures an image. A visual regression service adds baseline management, comparison, and a review workflow. ScreenshotNeo is useful for direct capture, while Chromatic and Argos target regression workflows.
Which price should I use in a budget?
Use each vendor’s current official pricing and billing documentation, plus a volume estimate from your own build pattern. Recheck plan limits and overage terms before committing.
