I have a weird obsession with making stuff run faster, even when it seems practically impossible to do so, which was the case with Playwright.
I thought most of my tests were slow because my app or the way I designed my tests sucked, so I took every measure I could to improve my e2e suite's speed. I saw a lot of improvements by simply "doing things right", like using data-testid selectors, running tests in parallel, caching frontend builds, seeding data efficiently, etc.
Eventually, I hit a wall, and I started wondering how much of that wall was Playwright's fault. My first instinct, like any good vibecoder, was to ask Claude to rewrite the entire thing in Rust, to which he smartly replied that it would be pointless after running some benchmarks.
I didn't know what to do, so I (and Claude) came up with a bunch of ideas for how to speed up tests, from preparing your next test run while the current one is running to skipping CSS animations. I had GPT 6 Astra write down 120 potential ideas for improving speed, of which only a few actually worked out without compromising functionality, in total I had 2 agents running everyday for almost an entire week. And this is the result:
Flashwright, a fork of Playwright that keeps the API almost identical while adding some performance tricks and QoL features.
I benchmarked it against Playwright across its own example suites and a bunch of other scenarios:
It passes all 2616/2616 tests from Playwright's own test suite, which means almost anyone can probably use it as a drop-in replacement.
Here's the repo in case you're interested: https://github.com/xcodebeast/flashwright



