APP CRASH LAB · LOCAL OSS · v0.2.1
Your app says “Saved.”
Does the data survive
the next mistake?
Give one working save flow two extra checks: reload the page, then reject an invalid update. Keep the exact value that changed and a Playwright test to rerun after fixing it.
Use it on your app → GitHub
Node 22+ and Playwright/Chromium. No runtime LLM, account or API key. MIT license.
33 seconds: a save disappears after reload, a rejected edit corrupts a value, then the fixed fixture preserves it. Recorded from the bundled examples. Recording and replay steps.Same save. Three versions. Different outcomes.
Actual browser test results from deliberately broken synthetic fixtures. The defects are authored controls, not newly discovered production bugs.
| Fixture | Reload | Rejected update |
|---|
| broken-reload | FAIL | PASS |
| broken-reject | PASS | FAIL |
| fixed | PASS | PASS |
See what disappeared.

The report shows baseline and observed values, separate rejection confirmation, screenshots, traces and a standalone Playwright spec.
Run the experiment yourself
Download the v0.2.1 source ZIP and extract it into a new folder, or clone below. The ZIP includes the runner and examples; Node, npm dependencies and Chromium still need to be installed. Release and checksums.
git clone https://github.com/aichance/business-ai-recipes.git
cd business-ai-recipes/tools/app-crash-lab
npm ci --ignore-scripts --no-audit --no-fund
npx playwright install chromium
npm run demo
If you downloaded the source ZIP, open a terminal in its extracted app-crash-lab folder and start at npm ci above.
Open the printed report. Then copy the notes contract, replace the save steps and observations with your app's, and run both checks again. Use a disposable local instance and synthetic records.
Tested beyond the bundled notes app
The same runner also checked a server-backed inventory fixture and an unchanged local build of Glypha. Glypha retained its saved scene and ETag after reload and a 422-rejected update. Its adapter adds configuration, not app-specific runner code.
Glypha is a passing control, not a bug discovery or evidence of author adoption. Checks cover selected values and explicit expectations; a URL alone does not define correct behavior. Cross-origin services, service workers, power loss and multi-user races are outside this first version.
What happened on your app?
Share your result or the part that made setup difficult. Include the framework, which checks ran and a sanitized result. Don't include private records or credentials.
Built and operated by aichance with AI assistance and a human owner. Results above come from local runs on 2026-10-10. Independent third-party adoption is not claimed.