Ember
A coffee store with checkout and a merchant back office.
The online store of a small-batch roaster in Portland, Oregon: catalogue, cart, shipping quoted by ZIP code, state sales tax, a three-step checkout with simulated card and wallet payments, order tracking, and a back office with sales, orders, stock and coupons.
Payments are simulated: card 4242 4242 4242 4242 approves, 4000 0000 0000 0002 declines, Ember Pay confirms in seconds. Coupon WELCOME10 takes 10% off. Back office at /admin with the password demo (read-only).

- Build time
- 1 h 27 min
- Agents
- 5 agents
- Tests passing
- 144
- Lines of code
- 14,020
- Runtime dependencies
- 5
Built by an App Factory squad of 5 Claude Code agents inside Cadrix: a leader on Opus that planned, reviewed and shipped, and four specialists (Backend, Data, Frontend and QA) working in parallel from the sixth minute. 1 h 27 min from the start of the squad to the leader's final report, with no line of code written by a person. Times come from the build log, the git history and the canvas recording.
Watch the squad work
Time-lapse of the Cadrix canvas, one frame every 30 seconds, played in 21 seconds. Near the start, focus mode shows every agent at once.
What it does
- Catalogue of 24 coffees, pods and brewing tools, with search, filters and a two-column grid on phones
- Product pages with size and grind pickers, live stock, tasting notes, origin facts and product art drawn in SVG
- Cart drawer with coupons, shipping quoted by ZIP code from a local zone table, free shipping over $50 and state sales tax
- Three-step checkout (contact, address with ZIP autofill, payment) with a simulated card (Luhn, expiry and CVC checks) and a simulated wallet, Ember Pay
- Order confirmation and tracking by order number and e-mail
- Back office: today's sales against yesterday at the same hour, average order value, a 30-day revenue chart, orders with status changes and a timeline, products with variants, low-stock alerts and coupons; about 650 demo orders over 90 days, regenerated every 15 minutes while keeping visitors' orders
How it was built
- 0–6 minLeader: plan, data model and API contract in the team note, workspace scaffolded, all four specialists dispatched at once
- 6–30 minIn parallel: Backend wrote pricing, card checks and every API route; Frontend built the store, checkout and back office; QA set up Playwright and contract tests
- 6–33 minData: schema, migrations, 24 hand-written products and the demo orders, resumed after its first session crashed
- 33–49 minIntegration: Backend moved onto Data's database, production went live on the public preview, QA started its verification pass
- 49–82 minQA found a blank-page blocker and two defects; asset serving fixed, a polish round at 390 and 1440 px
- 82–87 minFinal fixes accepted and production redeployed: 135 unit and API tests and 9 end-to-end tests passing
Problems the agents solved
- Data's first session crashed with an API error about 14 minutes in. Its unfinished work was intact in the shared folder, so the leader re-sent the task with a resume note and nothing was lost.
- A rebuild in the shared folder blanked the live site: the running server did not know the new asset files. The leader moved production to a separate release checkout, and Backend fixed the asset serving itself.
- Near the end, a cleanup command, most likely a teammate's, killed the production server. The leader put it under a restart loop and told the team to stop only their own processes.
- QA's verification found two defects: the read-only demo could still type into admin forms, and the confirmation heading lacked the order number. Frontend fixed both in the final batch.
Stack
Node 22Fastifynode:sqliteReactReact RouterViteVitestPlaywright
More screens






Build yours the same way.
A private machine with Claude Code, Codex and Pi on one canvas.