Quality
The test suite that clicks what your customer clicks.
A SaaS product we are launching had 325 passing API tests. Every endpoint verified, every permission checked, every edge case named. The founder asked a simple question: “I would hate for a customer to join and find bugs. Are there any?”
The honest answer was that we did not know, because none of those 325 tests ever clicked a button. So we built a suite that does: twenty Playwright journeys that walk the product exactly the way a customer would, in a real browser, against a disposable copy of production. Sign up, invite, upload, review, export, pay. The first full run caught a launch-killing bug within the hour.
What API tests structurally cannot see
The bug was subtle and would have been humiliating. A request for a document in a month that had no documents yet rendered nowhere: the server created it, the email went out, the workflow blocked as designed, and neither party could see why, because the screen only drew months that already had files in them. Every API test passed. The row existed; the JSON was correct. Only a browser walking the actual flow could discover that a correct row can still be an invisible one.
Over the following days the same suite surfaced four more: an export button that pointed at an authenticated endpoint with no way to carry the credentials, an invite link that rendered and was instantly wiped by a screen refresh, a list that only updated after you left and came back, and a date field that displayed raw ISO timestamps to humans. None of these are “bugs” an integration test recognizes. All of them are the product being broken.
The shape of the suite
Journeys, not pages. Each test is a story with two actors and a goal: a firm invites a client, the client joins through the link, uploads a year of documents, the firm reviews and closes the month. Assertions live where the value lives.
A disposable environment, not mocks. The suite runs against the real application booted on a scratch database, with outbound email captured instead of sent. Mocked backends make browser tests lie; throwaway real backends make them evidence.
Failure screenshots as the debugging interface. When a journey fails, the artifact is a picture of what the customer would have seen. Half our fixes started from a screenshot that simply looked wrong.
The economics
The suite took one working day to build with AI-assisted tooling and runs in twenty seconds. It has since caught a regression we introduced ourselves the same hour we wrote it, which is the entire argument in one sentence: tests that click what customers click turn “I hope it works” into “it worked twenty seconds ago, on video.” Every deploy now pays a twenty-second toll and in exchange no customer is ever the first person to click a broken button.
Have something to ship?
Want this level of confidence before your launch?
We build user-journey suites for products about to meet their first real customers. One day in, twenty seconds per deploy forever.
Continue reading
More from the field.

How a CPA practice runs client document collection with AI agents

Prove the tenant walls, every deploy

Every model call, on the record

Why we ship AI in 10 days, not 10 weeks

Closed-loop attribution: the unfair advantage of owning the funnel
