Reading the Ledger After the Demo
Nine Days of Twenty-Three
Time to read the ledger. The prototype weekend cost two days. The exploration, the not-list and the plan cost three. Building the remaining screens and putting the machine-run checks in place cost four. That is nine days of the twenty-three this course counts honestly, and it is worth pausing on what the number means, because your eyes will disagree with it. On screen, the product looks finished. Every page exists. The admin view works, the cancellation flow works, the checks pass, and there is nothing left to click that does not do its job. And yet the ledger says well under half the product exists. Both things are true at once. Everything visible is done, and the majority of the product was never going to be visible — which is exactly how the demo misled you in the first place, and exactly why the ledger is worth keeping.
- Demo 2 + plan 3 + build and checks 4 = 9 of 23 days
- Every screen exists and every check passes — it looks finished
- Well under half the product exists, and both facts are true at once
- The majority of a product was never going to be visible on screen
What the Screen Cannot Show You
So what is in the missing fourteen days, if nothing on screen is? The next module holds the biggest single line: where the data really lives, what happens when you change your mind about its shape while two hundred customers depend on it, accounts and locked-out customers, and the services you secretly stand on — nine days, four times the demo. After that comes shipping and running it: getting changes to users and taking them back, finding out it broke before the groomer does, and what it all costs at real usage — five more days. Then the second year, which is not a build stage at all, and over time quietly outgrows every line on it. None of this will change how the product looks. From here on you are no longer buying pixels. You are buying properties: survives a mistake, notices its own failures, runs without you.
- Next: data, accounts and hidden services — nine days, the biggest line
- Then shipping and running it — five days of ship, watch and fix
- Then the second year, which is not a build stage and never ends
- From here you are buying properties, not pixels
The Most Tempting Moment to Stop
This is the point where most vibecoded products quietly ship. Not out of recklessness — out of reasonable-looking evidence. The screens are done, the checks pass, and the remaining work is invisible, so it is easy to conclude the remaining work is optional. Shipping here means real customers on a product with no practised way to recover their data, no thought-through accounts, and no answer for the week the email service has a bad day. If you are tempted anyway, at least go with your eyes open: Vibecoding's final module, 'Before You Let Anyone Else Use It', covers whose data you are holding, secrets and keys, and spending caps, and every word of it still applies here. This course's position is milder than a prohibition. You may ship a demo. Just do not mistake that for shipping a product — the distance between the two is the next two modules.
- The screens being done makes the invisible work look optional — it is not
- Shipping here means strangers relying on properties you have not built
- Vibecoding's 'Before You Let Anyone Else Use It' still applies word for word
- You may ship a demo; just do not mistake that for shipping a product
Write the demo-vs-product gap list for your own project. Take your prototype and list, honestly, the difference between what "works" means for it today and what "works" would have to mean for strangers relying on it. Fill in the scaffold below before you build anything else.
My demo works today because: [who has it worked for — me, or a stranger?] [how many times has the core action actually run?] [what friendly data has it been fed?] For a product, "works" would have to survive: [two people acting at the same moment: ] [wrong or half-finished input: ] [the double-press, the back button, the refresh: ] My promises (future machine-run checks): [promise 1: ] [promise 2: ] [promise 3: ] The gap, in one sentence: [ ]
- Your gap list contains at least one case you genuinely cannot answer yet
- Each promise is written as something a machine could try, not a feeling
- You can name the one gap that would embarrass you most in front of a stranger
Prefer slides, quizzes, and saved progress? Read this lesson in the library — free, no sign-up.