Feature-by-feature
| Feature | Cypress | Playwright |
|---|---|---|
| Browsers | Chromium, Firefox, WebKit (limited) | Chromium, Firefox, WebKit full |
| Languages | JS/TS only | JS/TS, Python, Java, .NET |
| Parallel runs (free) | Local only | Workers built-in |
| Multi-tab / origin | Limited | First-class |
| iFrames | Plugin needed | Native |
| Pricing | Cypress Cloud usage | 100% free |
Where Cypress shines
The time-travel debugger and developer UX are still best in class for component testing inside a React or Vue codebase. If your team is JS-only and you're already paying for Cypress Cloud, switching costs are real.
Where Playwright pulls ahead
Cross-browser parity (real Safari/WebKit), multi-tab flows like OAuth + Stripe Checkout, and zero-license parallel runs in CI. Trace viewer is a fair replacement for Cypress's time-travel UI.
Migration in a weekend
Playwright's codemod handles cy.get → page.locator, cy.visit → page.goto, and cy.intercept → page.route. A 300-test Cypress suite usually migrates in a long weekend.