Percy
Visual review platform (BrowserStack)
Playwright
Cross-browser automation by Microsoft
Percy is a hosted visual review platform — it stores screenshots, diffs, and approval flows. Playwright ships expect(page).toHaveScreenshot() out of the box. For small teams, Playwright's built-in visual testing is enough; for teams that need design sign-off workflows and cross-browser snapshots with dedicated review UI, Percy still wins.
Pick Percy when you need review UI, design-team approvals, or cross-browser snapshot diffs.
Pick Playwright when you're small and want zero additional cost for basic visual regressions.
| Feature | 👁️Percy | 🎭Playwright | Winner |
|---|---|---|---|
| Screenshot diffing | Managed service | Built-in, local files | Tie |
| Review UI | Full web UI with approvals | Text diffs in CI | A |
| Cross-browser snapshots | Automatic on Percy infra | Per-browser config | A |
| Cost | $$ per snapshot tier | Free | B |
| Vendor lock-in | High (proprietary) | None (PNG files in repo) | B |
| Integrates with Playwright | Yes — @percy/playwright | N/A | Tie |
| Stability / noise | Managed anti-flake | DIY thresholds, fonts, animations | A |
| Setup effort | Medium (PERCY_TOKEN, CI) | Minimal | B |
Screenshot diffing
TiePercy
Managed service
Playwright
Built-in, local files
Review UI
APercy
Full web UI with approvals
Playwright
Text diffs in CI
Cross-browser snapshots
APercy
Automatic on Percy infra
Playwright
Per-browser config
Cost
BPercy
$$ per snapshot tier
Playwright
Free
Vendor lock-in
BPercy
High (proprietary)
Playwright
None (PNG files in repo)
Integrates with Playwright
TiePercy
Yes — @percy/playwright
Playwright
N/A
Stability / noise
APercy
Managed anti-flake
Playwright
DIY thresholds, fonts, animations
Setup effort
BPercy
Medium (PERCY_TOKEN, CI)
Playwright
Minimal
Best for
Best for
Going from Playwright-only to Percy: npm i @percy/cli @percy/playwright, wrap snapshots with percySnapshot(page, 'home'), set PERCY_TOKEN in CI, merge once to establish a baseline. Going from Percy to Playwright-only: replace percySnapshot calls with await expect(page).toHaveScreenshot(), commit baseline PNGs, and set a maxDiffPixelRatio.
Percy is a hosted visual review platform — it stores screenshots, diffs, and approval flows. Playwright ships expect(page).toHaveScreenshot() out of the box. For small teams, Playwright's built-in visual testing is enough; for teams that need design sign-off workflows and cross-browser snapshots with dedicated review UI, Percy still wins. In short: Percy — Visual review platform (BrowserStack). Playwright — Cross-browser automation by Microsoft.
Pick Percy when you need review UI, design-team approvals, or cross-browser snapshot diffs.
Pick Playwright when you're small and want zero additional cost for basic visual regressions.
Going from Playwright-only to Percy: npm i @percy/cli @percy/playwright, wrap snapshots with percySnapshot(page, 'home'), set PERCY_TOKEN in CI, merge once to establish a baseline. Going from Percy to Playwright-only: replace percySnapshot calls with await expect(page).toHaveScreenshot(), commit baseline PNGs, and set a maxDiffPixelRatio.
Yes. Both have MCP servers installable via MCPizy (mcpizy install percy and mcpizy install playwright). They work identically across Claude Code, Claude Desktop, Cursor, Windsurf, and any other MCP-compatible client. You can install both side by side and route queries in your agent's prompt.
Playwright (Microsoft) is the spiritual successor to Puppeteer — same core team, but cross-browser (Chromium, Firefox, WebKit), better auto-wait, built-in test runner, and first-class language bindings. Puppeteer remains solid for Chrome-only scraping/automation, but Playwright is the default for new projects.
Cypress pioneered modern E2E DX (time-travel debugger, docs, VS Code-feel). Playwright caught up and surpassed on: cross-browser, multi-tab, iframe handling, parallelization, and API testing. Cypress still has the nicer 'first 30 minutes' experience; Playwright wins at scale.
Selenium is the original cross-browser test framework — 20 years old, huge ecosystem, mandatory for legacy IE/old-Safari coverage. Playwright is modern, faster, has auto-wait, and doesn't need a separate driver. For new projects in 2026, Playwright wins on almost every axis except raw browser breadth.
Not sure? Run both side by side — swap between them in your AI agent with a single config line.