QALabs
Turns a URL into a reviewed, risk-rated test suite in under 10 minutes.
- Role
- Architect, engineer, and only QA
- Stack
- Next.jsPlaywrightClaude Agent SDKPostgresDrizzleFly.io
- 2 days → 9 min
- Time to first test plan
- 78%
- Cases surviving human review
- +31%
- Flows found vs. manual audit
The problem
Every new client engagement starts the same way: a week of clicking through an unfamiliar app to figure out what it does before a single test can be written. That week is unbillable, unpleasant, and identical every time.
What it does
Point QALabs at a URL. A Playwright worker crawls the reachable surface, captures the accessibility tree at each state, and reduces it to a flow graph. An agent then writes test cases per flow — with preconditions, risk ratings, and expected results — and a verification pass drops anything that references UI that was never actually observed.
How it is built
The crawler cannot run on serverless: a thorough crawl takes minutes and needs a real browser. So the Next.js app enqueues jobs into Postgres and a container on Fly.io drains the queue, streaming progress back over SSE.
Where it is going
Script generation. The cases already carry enough structure — selectors, preconditions, assertions — to emit runnable Playwright specs and API tests.