Playwright vs Cypress vs Selenium for Indie Hackers in 2026
The E2E testing debate is mostly settled for indie hackers. Playwright vs Cypress vs Selenium in 2026: speed, flakiness, CI cost, Safari, and which to pick.
Here's a thing that surprises people: choosing an end-to-end testing framework in 2026 is way less of a debate than the internet makes it sound. For a solo founder building a web app on a JavaScript, TypeScript, or Python stack, running tests in GitHub Actions, watching CI minutes, the answer is mostly settled. But the comparison articles haven't caught up, so you'll read endless three-way debates that matter for a 50-person enterprise QA org and not for you.
Let me cut through it. All three of these are free and open source. So stop comparing license fees, because there aren't any. The real cost of end-to-end testing is CI minutes, the hours you'll burn debugging flaky tests, and whether you can actually test Safari. That's the lens that matters for an indie hacker, and through that lens the picture is clear.
Playwright has become the default for new projects, and the data backs it up: it pulls far more weekly npm downloads than Cypress and Selenium combined, sits around 88,000 GitHub stars, and topped the latest State of JS satisfaction survey by the widest margin yet. But "most popular" isn't a reason on its own. Here's what each one actually does well, what it costs you in practice, and who should still pick the other two.
The Quick Verdict
| Tool | Best for | Real cost | Browsers |
|---|---|---|---|
| Playwright | The default for new web projects | CI minutes only, free parallel | Chromium, Firefox, WebKit (Safari) |
| Cypress | Frontend DX on single-domain apps | Free, but parallel pushes you to paid Cloud | Chromium, Edge, Firefox (experimental) |
| Selenium | Legacy suites, polyglot, native mobile | Grid infrastructure | All, including legacy via WebDriver |
Short version: start new projects on Playwright. Use Cypress only if its developer experience is the thing you care about most and you live within its limits. Reach for Selenium if you already run it, your team isn't on JS or Python, or you need real mobile-device testing.
They're All Free, So What Actually Costs You?
This is the section nobody leads with. Since none of the three charge a license fee, your spend is downstream: CI compute, maintenance time, and any dashboard subscription.
Playwright's parallelization is free and built in. You split a suite across runners with a single --shard flag, no extra service required. Independent estimates put a 500-to-1,000-test suite on GitHub Actions around $150 to $300 a month in CI minutes with Playwright.
Cypress is where it gets subtle. The framework is free, but its parallel execution and the reporting dashboard run through Cypress Cloud, which is paid. After Cypress was acquired in 2025, the free Cloud tier was capped (roughly 30-day data retention and a yearly test-result limit), with the Team plan landing around $67 a month beyond that. So a Cypress suite can cost meaningfully more to run at the same scale, both in CI minutes and the Cloud subscription you drift into.
Selenium has no subscription, but parallel runs need a Grid, either self-hosted (real infrastructure to maintain) or through a paid service like BrowserStack. That's the most operational overhead of the three.
The other hidden cost is flakiness. A flaky test you re-run three times burns CI minutes and, worse, your trust in the suite. Playwright's auto-wait engine retries actions intelligently, and independent benchmarks show it producing dramatically fewer flaky failures than Selenium's manual waits. For a solo dev, fewer 11pm "why did CI fail again" sessions is worth more than any benchmark.
Playwright
Playwright is the one I'd start any new project on. Microsoft released it in 2020, built by the team that originally created Puppeteer, and it talks to browsers directly through their native debugging protocols rather than through a middleman driver. That architecture is why it's fast and why it auto-waits for elements instead of making you write manual waits.
The practical wins stack up. It drives Chromium, Firefox, and a real WebKit engine, so you test actual Safari behavior on any OS, including a Linux CI runner, with zero setup. It handles multi-tab, multi-origin, and iframe flows natively, which matters the moment you test an OAuth login or a Stripe checkout popup. It supports TypeScript, JavaScript, Python, Java, and C#, ships a codegen recorder, traces, and screenshots, and parallelizes for free. It even tests API routes and server components directly, which pairs well if you're building on Next.js, Nuxt, or SvelteKit, and it overlaps neatly with the API-layer tools I covered in the best API testing tools.
For an indie hacker leaning on AI, Playwright also has the best agent story: a Playwright MCP server, a recorder that generates tests, and "Fix with AI" in the VS Code extension. If you already pair with an AI coding tool, this is the framework that plugs into that workflow most cleanly. It's also what Checkly uses under the hood for synthetic monitoring, which I touched on in the best uptime monitoring tools.
Who should skip it? If you need to automate native iOS or Android apps, Playwright only emulates mobile browsers, so you'll want Appium instead. Its plugin ecosystem is younger than Selenium's two-decade base, though it has replicated most of that functionality with built-in APIs. And if your team genuinely lives and dies by Cypress's interactive runner, the switch is a real adjustment.
Cypress
Cypress earned a devoted following for one reason: developer experience. It launched in 2017 with a genuinely novel idea, running your test code inside the browser in the same event loop as your app. That gives you the time-travel debugger, the interactive test runner where you watch each command replay, and deep access to your app's internals. For a frontend developer who wants tight, visual feedback while writing tests, nothing else feels as good. Its component-testing story is also the most mature of the three, covering the widest range of frontend frameworks. The current line is Cypress 15, which recently added an AI-assisted authoring command in beta.
But the architecture that makes Cypress pleasant also boxes it in, and the limits are exactly the things indie SaaS apps hit. There's no real Safari support: Chromium and Edge are first-class, Firefox has been experimental for years, and WebKit isn't there. With Safari at roughly 18% of browsers, that alone disqualifies Cypress as a sole testing tool for many consumer apps. It also can't do true multi-tab flows, because the runner itself occupies the second browser slot. The cy.origin() command handles some cross-origin OAuth in a single tab, but popups and real multi-tab interactions are out. That multi-tab gap is the single most common reason teams migrate to Playwright in 2026.
Who should skip it? Anyone who needs Safari coverage, multi-tab flows, or a non-JavaScript language, which rules it out for a lot of real apps. And anyone cost-sensitive about CI, since free parallelization isn't part of the picture. If you're a pure JS or TS team on a single-domain SPA and the DX is what keeps you actually writing tests, Cypress is still a legitimate, even excellent, choice. The best framework is the one your team uses consistently.
Selenium
Selenium is the grandparent of browser automation, open source since 2004, and it's still here for good reasons. It has the largest installed base of any framework, the broadest language support (Java, Python, C#, Ruby, PHP, JavaScript, Kotlin), and the widest browser coverage including legacy targets. It's actively maintained, not a museum piece: Selenium 4.43 is current, and Grid 4.41 added native Kubernetes provisioning in early 2026, with expanding WebDriver BiDi support that modernizes how it talks to browsers.
Its real superpower for 2026 is the one thing the other two can't do: paired with Appium, Selenium drives true native mobile apps on real iOS and Android devices, not just mobile browser emulation. If your product is a native app, the Selenium and Appium combination is the industry standard.
Who should skip it? Most new indie web projects, honestly. Selenium uses the WebDriver protocol, which puts a driver process between your test and the browser and adds round-trip latency on every command, so it's the slowest of the three. It has no native auto-wait, so you write explicit waits and fight more flakiness. And parallelizing means standing up a Grid, which is real infrastructure. For a solo founder on a modern JS or Python web stack, that's a lot of overhead to take on Selenium's breadth when you'll use a fraction of it. Pick it for an existing suite, a polyglot team, or native mobile, not for a greenfield web app.
How Do the Three Compare Head to Head?
Strip it to the dimensions that decide a real project.
| Dimension | Playwright | Cypress | Selenium |
|---|---|---|---|
| Speed | Fastest | Fast | Slowest |
| Flakiness | Lowest (auto-wait) | Low | Highest (manual waits) |
| Safari/WebKit | Yes | No | Yes |
| Multi-tab flows | Yes | No | Yes |
| Free parallel | Yes | No (Cloud) | Via Grid |
| Languages | TS, JS, Python, Java, C# | JS/TS only | Most languages |
| Native mobile | No | No | Yes (Appium) |
The pattern is clear. Playwright covers the things that matter for a modern web app with the least friction. Cypress trades coverage for developer experience. Selenium trades speed and setup for unmatched breadth.
How Do You Choose the Right One?
Start with your stack and what you actually need to test.
flowchart TD
A[Picking an E2E framework] --> B{Already have a working Selenium suite?}
B -- yes --> C[Keep it, write new tests in Playwright]
B -- no --> D{Need native mobile app testing?}
D -- yes --> E[Selenium plus Appium]
D -- no --> F{Need Safari or multi-tab flows?}
F -- yes --> G[Playwright]
F -- no --> H{Is Cypress DX the thing your team loves?}
H -- yes --> I[Cypress]
H -- no --> G
Concrete scenarios. Brand-new SaaS on a JS, TS, or Python stack? Playwright, almost every time. Testing a native mobile app? Selenium with Appium. Frontend team on a single-domain SPA that genuinely loves the Cypress runner and doesn't need Safari? Cypress is fine. Big legacy Selenium suite that works? Don't rewrite it for fun, just write new coverage in Playwright alongside it.
The Verdict: Which Should You Use?
For almost every new indie project in 2026, use Playwright. It's free, it's the fastest and least flaky of the three, it tests every browser including Safari, it parallelizes without a paid dashboard, and it has the best AI tooling if you build with coding agents. The popularity is a symptom, not the reason. The reason is that it removes the exact friction (flaky tests, Safari gaps, paid parallelization) that wastes a solo dev's time and money.
Choose Cypress only if its developer experience is genuinely the thing that makes you write tests, your app is single-domain, and you don't need Safari or multi-tab flows. That's a narrower box than it used to be, but inside it, Cypress is still a joy.
Choose Selenium if you already run it and it works, your team isn't on JavaScript or Python, or you need real native mobile testing through Appium. It's not the default for new web projects anymore, but it's far from dead and it's the right tool for those specific jobs.
The honest meta-point is that the framework war that dominates the search results is mostly an enterprise conversation. For a solo founder shipping a web app, the decision compresses to one line: use Playwright unless you have a specific reason rooted in mobile, language, or an existing suite. Spend the time you saved writing actual tests. Running one of these on your project? Tell me how it's going on @devtoolpicks.
Frequently Asked Questions
Is Playwright better than Cypress in 2026?
For most new projects, yes. Playwright runs Chromium, Firefox, and WebKit (Safari) natively, handles multi-tab and cross-origin flows that Cypress architecturally can't, and parallelizes for free instead of pushing you toward paid Cypress Cloud. Independent benchmarks put it faster and far less flaky. Cypress still wins on one thing: its interactive runner and time-travel debugger are the best developer experience in testing. If you're a frontend JS team on a single-domain app that values that DX above all, Cypress is defensible. Otherwise, Playwright.
Is Selenium still worth using in 2026?
For existing suites and specific cases, yes. Selenium is still actively maintained (4.43 current, with Grid 4.41 adding Kubernetes provisioning in early 2026) and has the largest installed base of any browser automation tool. It's the right call if you have a big stable Selenium suite, a polyglot or Java/Ruby team, or you need true native mobile testing through Appium. For a brand-new JavaScript or Python web project, though, it's no longer the default. Playwright does the same job faster with less setup.
Which testing framework is fastest?
Playwright, in most modern web scenarios. It talks to browsers directly through their debugging protocols instead of going through WebDriver's extra driver process, which adds round-trip latency on every command. In independent 1,000-test benchmarks, Playwright ran roughly 63% faster than Selenium and around 23% faster than Cypress, and its built-in auto-wait cut flaky failures by about 60% versus Selenium's manual waits. Speed matters less than flakiness for a solo dev, and Playwright wins both.
Can Cypress test Safari?
Not really, and this is a common dealbreaker. Cypress primarily supports Chromium-based browsers and Edge, its Firefox support has sat in an experimental state for years, and there's no WebKit or Safari support at all. Since Safari holds roughly 18% of global browser share, a consumer-facing web app can't rely on Cypress as its only end-to-end tool. Playwright bundles a real WebKit engine and tests Safari behavior on any operating system, including Linux CI runners, with zero extra setup.
Which E2E framework is cheapest to run?
All three are free and open source, so the real cost is CI. Playwright is cheapest in practice because its parallelization is free and built in: you shard across runners with a single flag. Cypress's framework is free, but parallel runs and the dashboard nudge you toward Cypress Cloud, where the free tier is capped and the Team plan runs about $67 a month. Selenium needs a Grid, which is the most infrastructure of the three. For a solo dev watching CI minutes, Playwright wins on cost too.
Get honest tool comparisons in your inbox
Join 50+ indie hackers and solo developers who get new comparisons, pricing changes, and tool picks. No spam. Unsubscribe anytime.
Related Articles
Bun vs Node vs Deno for Indie Hackers in 2026
The 'Bun is 4x faster' charts fall apart in real apps. Here's how Bun, Node, and...
Best Cloudflare Alternatives for Indie Hackers in 2026
Cloudflare free is hard to beat. But account terminations happen without warning...
When to Use Vercel vs Railway vs Hetzner for Your Solo SaaS in 2026
All three hosting platforms work. The question is which one fits your project ty...