Live behavior
The product is the judge.
Check the paths customers actually touch — landing, signup, login, checkout, onboarding, account, and public APIs — against the real access path, with declared principals and policy.
00 / Lived-behavior verification
BitterQA turns a repo-owned behavior contract into a run with artifacts, a verdict, a failure class, a repair lane, and the rerun that settles whether trust was restored.
Built for products that change faster than humans can manually verify them.
01 / Thesis
Agent work raises the rate of change. That is the point. Faster change also means faster decay unless the product can answer back. QA has to become part of the environment, not a slower ceremony at the end.
Live behavior
Check the paths customers actually touch — landing, signup, login, checkout, onboarding, account, and public APIs — against the real access path, with declared principals and policy.
External evidence
Screenshots, response shapes, status codes, traces, timings, and final verdicts ride together as one durable artifact bundle with a stable id.
Agent fuel
Failures land with a class — runtime, contract drift, payment, browser custody — so the next agent or human starts from a narrow piece of evidence, not a blank page.
02 / Contracts
A QA contract names what live behavior must hold for a real user, against which site, on which schedule, with which principal posture, and what evidence to keep. It belongs in the repo that owns the product.
BitterQA owns hosted execution, run history, verdicts, and repair state. The product repo owns what "works" actually means.
03 / Loop
A small loop that keeps fast software honest. Each step leaves a durable handle the next step can cite.
Start with the paths whose silent breakage would cost trust. Live homepage smoke is not enough — you want signup, paid feature use, support widget presence, and the API contracts customers depend on.
contract.flows[]Browser flows for human paths, API checks for machine paths, webhook round-trips for the seams between. Daily, hourly, or wired into a release gate.
qa.run --gate=releaseScreenshots, traces, response bodies, console and network evidence, DOM snapshots, and timings ride along with the run under one stable id. Bitter Browser supplies the perception layer when human paths need real-browser proof.
artifacts.bundleA passing run is a receipt. A failing run is a class — runtime, contract drift, principal, payment, browser custody — paired with the evidence that names the next fix and the rerun that proves it landed.
verdict · failure_class · rerun04 / Receipts
Whether it passed or failed, the next person — or the next agent — starts from a bounded piece of evidence. Pass means trust is preserved. Fail means a narrow class of failure with a repair lane attached.
Contract
marketing.public_smoke
Contract
checkout.entitlement_landed
— / Boundary
BitterQA is the lived-behavior verification layer for agents and the teams running them. Grid proves a service was deployed and reachable. Ping proves external liveness. BitterQA proves whether a real product path still behaves as promised.
Daily and release-gate verification stays cheap and deterministic. Agentic repair wakes only for setup, drift, failure, or coverage expansion. Bitter Browser supplies bounded perception and capture under explicit policy — never leaking private session state by default.
05 / Pricing
One small contract that catches a real failure once is worth more than a hundred green smoke checks that never light up.
Starter
$29/mo
For one product that needs a basic live verification loop.
Core
$99/mo
For products with several customer-visible paths worth guarding.
Loop
$299/mo
For teams using agents to ship and verify product changes continuously.
06 / Access
Tell us what your agents or team are changing, which live flow has to stay true, and what evidence would make the next fix obvious.
Approvals are manual. Replies come from a human, not a queue.