Building in Public #3: Going online, the hard way
By Peter Coppinger
This was the week Vorx left my laptop.
Nobody tells you that 'it works on my machine' is the easy ninety percent.
The plan: containerize the builder, deploy it, and have real builds running in the cloud by end of week. The reality: a beautiful parade of everything that's different between a laptop and a production container.
Every single online build failed
My favourite, in the way a bruise is your favourite: every single online build failed at the checkpoint-commit step. Every one. The cause? The container had no git identity, no user.name, no user.email, so every commit was refused. One config line. On my machine it had been set for fifteen years, which is exactly why I'd never think of it.
Then file permissions on the shared storage mount. Then the startup fix for the permissions problem taking so long it failed the deploy health probe. The fix for the fix needed a fix. At one point I was bumping a version number in the health endpoint just to prove to myself which code was actually running, like knocking on a wall to find the stud.
And then, through
I worked like an absolute dog through the weekend on this. Late nights, walk, back at it. And then it broke open. Online builds working, reliably, end to end. Apps building in the cloud for the first time. It's a huge milestone and I did a genuinely undignified celebration alone in my office.
The infrastructure fought back one more time: with multiple builds running at once, the shared verification browser deadlocked, so each build now gets its own from a pool, with a watchdog so nothing can hang silently. Concurrency: it's always concurrency.
Also this week: started the marketing site, and built a side-by-side demo, the same CRM as a VorxSync app and as a traditional request-response app, running next to each other.
Watching the sync version respond instantly while the standard one spins its little spinners is the entire pitch, no words needed.
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.