Case study · Productivity & lifestyle

Recipe Manager Web — first verified factory pass on prod

Real prod run, 2026-05-18, job 5b405f2f. Prompt → 22 generated files → Build PASS → Launch PASS → 485 KB tar.gz with sha256. The complete factory pipeline produces a verifiable deliverable on production from a single prompt.

OOretz internal — first verified end-to-end pass · published 2026-05-18
AI calls
7
across all phases
Lines of code
600
TypeScript + TSX + CSS
Build attempts
1
0 repair cycles
Wall-clock time
4 min
3.6 bridge min

The prompt (verbatim)

$Build a simple recipe manager web app with React. Users can add recipes with ingredients and instructions, search by ingredient, and mark favorites.

What the manifest extracted

Entities2
Workflows3
Surfacesweb
Capabilities requiredlinux-build · next-build · nodejs-runtime

Timeline (4 min total)

00:40
Intent parse → AppManifest
2 entities (Recipe, Ingredient), 3 workflows extracted
00:01
Capability resolution
Linux bridge selected for web surface
00:01
Scaffold Next.js 15 project (hardcoded skeleton)
8 scaffold files: package.json, tsconfig, next.config.js, app/layout, app/page, globals.css
01:05
Generate entity routes + components (parallel, concurrency=4)
Per-entity API route handler + UI components
01:18
Generate workflow code (parallel)
Add Recipe, Search by Ingredient, Toggle Favorite workflows
00:06
Write all 22 files to workspace on Runner-1
mkdir -p + base64 decode per file — all 22 written, no failures
00:26
npm install
304 packages added
00:09
next build
Compiled successfully in 9.5s — 4 static pages, 102 KB bundle
00:08
next start (launch verification)
Ready in 349 ms on a random port — server survived the 8s observation window
00:03
Package artifact (tar.gz, sha256)
485 KB tarball at /home/ubuntu/factory-workspaces/artifacts/factory-5b405f2f-…-.tar.gz
00:01
Save proof pack to Supabase
overall_status="pass" in sf_factory_proofs

Verification

Compile result
passed
Build attempts
1
Repair cycles used
0
App launched
yes ✓
Screenshot captured
no

Final artifact

Surface
Next.js standalone (tar.gz)
Size
0.47 MB
SHA-256
bddda4fcc26041b863abea466aa5698663ccb4a932c2873574756365ea74ea02
Runs on target
yes ✓
Downloadable
no

What we learned

✓ What worked

Hardcoded Next.js scaffold beats AI-generated scaffold

Earlier attempts used the AI to generate scaffold + entities + workflows. Result: a Frankenstein mix of C# WPF files and React components for the same prompt. Switching to a hardcoded Next.js scaffold (package.json, tsconfig, next.config, app/layout, app/page) and using AI only for entity + workflow code produced clean, buildable output on the first try.

✓ What worked

No repair cycles needed

Build passed on the first attempt. The AI gateway system-prompt fix + bumping max_tokens to 8192 for entity/workflow generation + 16384 for scaffold makes the per-entity prompts converge cleanly without compile errors.

✗ What didn't work

next start -p 0 is invalid

First launch attempts used -p 0 hoping Next would auto-pick a port. Next refused: "Invalid port". Fixed by picking a random port in 40000-49999 directly in the -p arg.

✗ What didn't work

nohup only protects its direct child

`nohup cd /workspace && npx next start` looked like it backgrounded next, but nohup only attached to the `cd` builtin. The npx that followed `&&` received SIGHUP when the ssh session ended. Fixed by wrapping the whole chain in `nohup bash -c '…'`.

? What surprised us

next build under 10 seconds on Runner-1

A fresh Next.js 15 build (no cache) compiled this app in 9.5 s. Most of the wall time was npm install (26 s for 304 packages) and code generation (~140 s across 7 AI calls). The compile itself is the cheap part.

Try this build yourself

The exact prompt from this case study is in our launchpad. Click below to drop it into the operator pre-filled.

© 2026 OOretz Factory · Every number cited is real