Skip to content
Building in public3 min read

Building in Public #9: The 133-Second Problem

By Peter Coppinger

Building in Public #9: The 133-Second Problem

We spent this week trying to make builds faster, and the most useful thing we found is that we'd been staring at the wrong number.

The obvious theory: builds are slow because the AI writes a lot of code. Less code, faster build. So we measured it properly, across 113 real builds timed end to end.

The theory is mostly wrong. The relationship between how much the model writes and how long the build takes is weak. When we fit it, the line comes out at roughly 133 seconds of fixed cost before a single character of your app exists, about 62% of the average build. Halving the amount of code written (which would be a big engineering win) would buy back about 28 seconds. The other 133 are something else: queue time, model start-up, thinking time. We're instrumenting each of those now, because you can only fix the part you can see.

133 seconds of fixed cost before a single character of your app exists. About 62% of the average build.

Two things I like about this result.

First, it killed a plan before we built it. We had a whole workstream ready for pre-building common components so the model writes less. Measured against real builds, that would have saved almost nothing. The boilerplate it targets is 0.3% of output. That workstream is cancelled, and the week it would have taken goes to the 133 seconds instead.

The boilerplate it targets is 0.3% of output. That workstream is cancelled.

Second, it was found, argued, and settled by the AI fleet itself. Three separate analyses, each done independently, all landing on the same answer. My job was reading the reports.

It was found, argued, and settled by the AI fleet itself. My job was reading the reports.

Build speed matters because iteration speed is the product: you describe a change, you see it. Every second in that loop is felt.

Iteration speed is the product: you describe a change, you see it. Every second in that loop is felt.

We're instrumenting the 133 seconds piece by piece, and the first piece is already done. One stage, the design pass's thinking time, turned out to be a cliff rather than a knee: capping how long the model reasons before it commits to a design cut that stage from a 100-second median to 31, with no measurable drop in the design it produces. It's already shipped to production. We don't yet know what share of the 133 that stage accounts for, so we're not claiming one. We'll publish the rest of the breakdown as the other pieces land.

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.