The question
I’m interested in useful businesses that never get built because the opportunity looks too small to justify the work. Nullfield asks what becomes worth trying when we can reduce the work required to build and operate a company.
V0 focused on a smaller question: could the Factory carry a simple idea from a brief to a working page, with a clear record of the decisions in between? We used three deliberately basic test cases: Game Night Ready, Tank Start, and Sprout Start.
We recorded the order before we began and ran the products one at a time. These were tests of the Factory, not bets on customer demand.
Three basic businesses
Game Night Ready is a bold, dark poster for first-time board-game hosts. Tank Start is an ice-blue checklist for new aquarium owners. Sprout Start is a quieter, cream-and-green page for balcony herb growers. Each offers three simple prompts and a button that takes you to the guidance already on the page.
We kept each business intentionally basic. Each one is a static guide with three useful prompts and one button. There are no accounts, databases, recommendation engines, or other product logic. That was enough to test whether the Factory could turn a brief into something real and publish it privately.
The first Game Night run exposed a limitation: every product used the same layout. We added three fixed templates and ran Game Night again. The portfolio shows the final set. The earlier run remains in the internal history and cost ledger.
Each final product contains 14 verified source files. The screenshots below show the pages exactly as the Factory produced them.



What v0 actually proved
The result was not simply three screenshots. Each page can be traced back to an approved brief, verified source code, and a recorded release decision. That traceability is the core proof from v0.
Every product followed the same seven steps: define the product, approve the brief, build the page, verify the source, approve the release, publish the test, and decide what should happen next. Each approval was attached to a specific artifact, so the thing we reviewed was the thing the Factory used.
I set the boundaries for the experiment and authorized Codex to complete the routine reviews within them. That delegation did not remove the controls. The Factory still recorded what was approved, what failed, and what was ultimately published.
Decide
- Agent taskDefine the product
- Human-approved gateApprove the brief
Build
- Agent taskBuild the page
- Agent checkVerify the source
Launch
- Human-approved gateApprove the release
- Agent taskPublish the test
- Human-approved decisionChoose the outcome
Why the dashboard mattered
Once we had several runs, the Products dashboard became the clearest way to understand the Factory. It shows each product, its current state, the seven steps behind it, and whether its infrastructure still matches the recorded status.
The public portfolio shows three finished examples. The dashboard shows the current state of the wider product catalogue, including retired products whose infrastructure is gone. The deeper record of earlier workflows, failures, and retries lives in the preserved evidence rather than the dashboard itself.

What breaking taught us
Game Night and Tank both failed during source creation after their briefs had been approved. AWS denied the operation that would create the source commit. The records show exactly where they stopped, but not why the permission check failed.
We resumed each product from its approved checkpoint instead of starting over. The specifications stayed the same, both products finished successfully, and the failed attempts remained in the history and cost ledger. Sprout completed its main run without a failed agent attempt.
The clearest lesson was simple: recovery only means something when the record includes both the failure and the successful result. A clean final screenshot is not enough.
Proving we could finish cleanly
Creating a product was only half the test. We also needed to know that the Factory could remove its infrastructure without losing the evidence required to understand what happened.
Before retiring each product, we saved its screenshot, exact source, and history. Retirement required separate approval. We then removed the test page and source repository, confirmed both were gone, and verified that the product remained visible in the dashboard. All three v0 products are now retired.
- BeforePreserve the screenshot, source, and history
- ApprovalConfirm this product should be retired
- AfterRemove the test page and repository
Confirm removal · Keep the product history
What v0 did not prove
V0 proved a bounded production process. It did not prove that these ideas should become businesses. Three completed examples do not establish customer demand, statistical reliability, autonomous operation, or the economics of running a company.
The model costs were small, but they are only one part of the cost. The missing AWS, shared-development, and human-time measurements matter more than another decimal place in the model subtotal.
The closeout produced another useful lesson: more review steps do not automatically create more confidence. Our first audit became too large and still produced bad references. We preserved that work, simplified the process, and used one independent reviewer to check the final evidence.
What changes in v1
V0 gives us a controlled way to build, inspect, recover, and retire a simple product. V1 carries those controls forward.
The next version starts with original needs, gives each product a distinct identity and logo, publishes it on its own .com, and measures real demand. That is the point where the Factory begins testing businesses, not only its own machinery.
Postscript
Game Night Ready
The test page and its source repository were retired. Its source, screenshot, and Products history remain available in the preserved record.
Postscript
Tank Start
The test page and its source repository were retired. Its source, screenshot, and Products history remain available in the preserved record.
Postscript
Sprout Start
The test page and its source repository were retired. Its source, screenshot, and Products history remain available in the preserved record.
The notebook
The numbers and the details
| Measurement | Game Night Ready | Tank Start | Sprout Start |
|---|---|---|---|
| Outcome | Verified, then retired | Verified, then retired | Verified, then retired |
| Elapsed time | 37 min 1 sec from first workflow start to stop; excludes retirement | 12 min 42 sec from first workflow start to stop; excludes retirement | 8 min 2 sec from first workflow start to stop; excludes retirement |
| Agent time | 5 min 17 sec recorded agent work; includes retirement | 5 min 51 sec recorded agent work; includes retirement | 4 min 58 sec recorded agent work; includes retirement |
| Active human time | Not recorded | Not recorded | Not recorded |
| Estimated model cost | $0.006464 known model estimate; includes retirement | $0.006212 known model estimate; includes retirement | $0.006085 known model estimate; includes retirement |
| Other cost coverage | AWS: unknown; External services: unknown; Human time: unknown | AWS: unknown; External services: unknown; Human time: unknown | AWS: unknown; External services: unknown; Human time: unknown |
How long it took
Game Night's successful replay took about 28 minutes and 30 seconds to reach the final outcome decision. Tank's successful replay took about 8 minutes and 50 seconds. Sprout's original run took about 8 minutes and 2 seconds.
Those figures measure elapsed workflow time, including waits at checkpoints. The comparison table separately shows recorded agent time, which includes inspection and retirement. Active human time remains unmeasured. With only three products and different retry histories, these numbers are a baseline, not a performance comparison.
What we know about the cost
The selected products recorded estimated model costs of $0.006464 for Game Night, $0.006212 for Tank, and $0.006085 for Sprout. All three include retirement, for a combined $0.018761. The earlier Game Night run is separate at $0.006168.
Within the recorded experiment window, the retained workflows for these four product scopes contain 26 product attempts and 46 model requests. Failed attempts remain included. Each estimate is tied to recorded token usage and the pricing snapshot applied to that attempt. The inventory cannot rule out gaps before that window.
We also tracked the work required to analyze and close out v0. Four analyst calls recorded $0.006575, $0.007127, $0.007382, and $0.006349. The synthesis recorded $0.012725. Along with 28 later review calls, the closeout contains 33 calls. Thirteen have runtime-recorded pricing totaling $0.115261; 20 do not.
For the 20 unpriced calls, separate rate-based calculations produce $0.607126 for 11 GPT-5.4 calls and $0.370460 for nine o3 calls. We keep those estimates separate because they were not recorded by the runtime.
These figures are not an all-in cost. AWS allocation, external services, shared Factory development, active human time, and local editing and review remain unknown. Unknown means we did not measure it, not that it was free.
Agent-by-agent model estimates
| Agent / attempt | Model | Requests | Estimated cost |
|---|---|---|---|
| Product definition · succeeded | gpt-5.4-mini | 1 | $0.000908 estimated |
| Source creation · failed | gpt-5.4-nano | 1 | $0.000129 estimated |
| Source creation · succeeded | gpt-5.4-nano | 2 | $0.001580 estimated |
| Source verification · succeeded | gpt-5.4-nano | 2 | $0.002205 estimated |
| Page published · succeeded | gpt-5.4-nano | 2 | $0.000896 estimated |
| Retirement inspection · succeeded | gpt-5.4-nano | 2 | $0.000401 estimated |
| Retirement · succeeded | gpt-5.4-nano | 2 | $0.000345 estimated |
| Agent / attempt | Model | Requests | Estimated cost |
|---|---|---|---|
| Product definition · succeeded | gpt-5.4-mini | 1 | $0.000797 estimated |
| Source creation · failed | gpt-5.4-nano | 1 | $0.000122 estimated |
| Source creation · succeeded | gpt-5.4-nano | 2 | $0.001536 estimated |
| Source verification · succeeded | gpt-5.4-nano | 2 | $0.002130 estimated |
| Page published · succeeded | gpt-5.4-nano | 2 | $0.000868 estimated |
| Retirement inspection · succeeded | gpt-5.4-nano | 2 | $0.000410 estimated |
| Retirement · succeeded | gpt-5.4-nano | 2 | $0.000349 estimated |
| Agent / attempt | Model | Requests | Estimated cost |
|---|---|---|---|
| Product definition · succeeded | gpt-5.4-mini | 1 | $0.000898 estimated |
| Source creation · succeeded | gpt-5.4-nano | 2 | $0.001591 estimated |
| Source verification · succeeded | gpt-5.4-nano | 2 | $0.002221 estimated |
| Page published · succeeded | gpt-5.4-nano | 2 | $0.000627 estimated |
| Retirement inspection · succeeded | gpt-5.4-nano | 2 | $0.000403 estimated |
| Retirement · succeeded | gpt-5.4-nano | 2 | $0.000345 estimated |
| Agent / attempt | Model | Requests | Estimated cost |
|---|---|---|---|
| Original run · Product definition · succeeded | gpt-5.4-mini | 1 | $0.000912 estimated |
| Original run · Source creation · succeeded | gpt-5.4-nano | 2 | $0.001510 estimated |
| Original run · Source verification · succeeded | gpt-5.4-nano | 2 | $0.002114 estimated |
| Original run · Page published · succeeded | gpt-5.4-nano | 2 | $0.000892 estimated |
| Original run · Retirement inspection · succeeded | gpt-5.4-nano | 2 | $0.000395 estimated |
| Original run · Retirement · succeeded | gpt-5.4-nano | 2 | $0.000345 estimated |
