Skip to content
Building in public3 min read

Building in Public #6: Measure, reject, keep

By Peter Coppinger

Building in Public #6: Measure, reject, keep

This week I found the metric I'd been missing, and it reframes everything: how often does a user have to ask twice?

Build time matters, polish matters, but the moment that decides whether someone trusts Vorx is when they ask for a change. If the change lands first time, magic. If they have to repeat themselves, the spell breaks. So I instrumented it: every edit, did a follow-up request come in about the same thing? That repeat rate is now the update-quality number on my wall, and it's already caught its first lie: an attribution bug that made silent misses look twice as common as they were.

Even your measurements need measuring.

The experiments that said no

In the same spirit, I ran a set of speed experiments this week and rejected most of them. A model swap for the escalation path: measured, worse, rejected. The expensive model earns its latency by breaking loops the fast one can't. Fast-model routing for a corrective pass: rejected. It's oddly satisfying writing 'REJECTED' in the log.

Every no is a yes to the system you already have, now with receipts.

Payments in generated apps

The big feature ship: payments in generated apps. Connect Stripe, and Vorx suggests plans, creates them, wires up checkout and subscriptions, and tells the build where the payment screens belong. Testing it end to end, a generated app charging a real test card, was this week's grin moment. 'Build me a business' inches closer to being literal.

Also a proper mobile pass (generated apps and the editor itself: dynamic viewport heights, focus-zoom fixes, all the iOS Safari folklore), and a rebuilt build-status card: I designed ten variants, wired them into a live cycler, and picked a winner. A bounded six-phase rail instead of an endless scrolling step list. Watching a build should feel like progress, not like scrolling a log file.

Next week: a testing push that I suspect will be humbling. The plan is to hammer the builder with real-world builds until the defect list stops growing. I'll report the numbers, whatever they say.

Just shipped

  • Feature: sharing your build now earns credits: post it on X or LinkedIn, submit the link, get 15 credits.
  • Bug fix: the language picker now actually saves your choice instead of reverting on the next page load.
  • Feature: fleet coordination now works from anywhere. A hosted endpoint, not my home Wi-Fi.
  • Feature: Mission Control is served online, locked to the company's own accounts.
  • Feature: generated apps can now be installed like native apps, icon and all.
  • Feature: a performance gate flags exactly which change slowed a generated app down.
  • Feature: generated apps can connect to Google Sheets: append rows, read rows.
  • Feature: generated apps can schedule real recurring jobs, not fake ones.
  • Feature: owners get told immediately if their published app's database ever disappears.
  • Feature: Apple login for generated apps.
  • Bug fix: edits interrupted by a deploy now resume instead of silently vanishing.
  • Bug fix: the cookie consent banner was never actually visible on production, so nobody was ever asked.
  • Bug fix: generated apps were asking their database for tables that were never created. It hit 18 live projects.
  • Bug fix: a code slip in generated apps could crash the whole page on load. Caught and fixed.
  • Bug fix: publishing showed a "failed" message while the site was actually live. Fixed.
  • Bug fix: agents quietly working from stale code can no longer ignore the staleness.
  • Bug fix: a fresh browser window said "please log in again" to people who were logged in.
  • Bug fix: demo data stopped booking appointments on days the business is closed.
  • Bug fix: copied credentials could point a new project at the wrong database. Sealed.
  • Bug fix: an overeager cleanup job was deleting healthy backends. Stopped.
  • Feature: sharing your build now earns credits: post it on X or LinkedIn, submit the link, get 15 credits.
  • Bug fix: the language picker now actually saves your choice instead of reverting on the next page load.
  • Feature: fleet coordination now works from anywhere. A hosted endpoint, not my home Wi-Fi.
  • Feature: Mission Control is served online, locked to the company's own accounts.
  • Feature: generated apps can now be installed like native apps, icon and all.
  • Feature: a performance gate flags exactly which change slowed a generated app down.
  • Feature: generated apps can connect to Google Sheets: append rows, read rows.
  • Feature: generated apps can schedule real recurring jobs, not fake ones.
  • Feature: owners get told immediately if their published app's database ever disappears.
  • Feature: Apple login for generated apps.
  • Bug fix: edits interrupted by a deploy now resume instead of silently vanishing.
  • Bug fix: the cookie consent banner was never actually visible on production, so nobody was ever asked.
  • Bug fix: generated apps were asking their database for tables that were never created. It hit 18 live projects.
  • Bug fix: a code slip in generated apps could crash the whole page on load. Caught and fixed.
  • Bug fix: publishing showed a "failed" message while the site was actually live. Fixed.
  • Bug fix: agents quietly working from stale code can no longer ignore the staleness.
  • Bug fix: a fresh browser window said "please log in again" to people who were logged in.
  • Bug fix: demo data stopped booking appointments on days the business is closed.
  • Bug fix: copied credentials could point a new project at the wrong database. Sealed.
  • Bug fix: an overeager cleanup job was deleting healthy backends. Stopped.

Stay updated: one founder, an army of AI agents, building this in public.

Get each new diary entry by email: the wins, the failures, and the one number we're chasing. No spam, unsubscribe any time.