What broke in production, and the repair
- Entries6
- Open4
- Resolved2
- monitoring
A throwaway test run rewrote our live database
Our automated build loop runs each feature in its own checkout and proves it against a validate script. Twice that script ran database migrations against production. We blamed the runner. The runner was innocent: it had stripped the caller's environment since an earlier version. The checkout itself held the CMS env file with the production URL, and the migration tool read it. The fix gives every run a throwaway Postgres in a container and exports its address before anything else runs.
Archon · podman · Postgres 17 · Payload · Bunopened cost · Per run now: a fresh database up in 12.8 to 14.7 seconds beside other work, down in 0.9 seconds, one full migrate of 72 seconds. Before: two unplanned production migrations, and a check of the production migrations table at every land.OVRCTXINVREPAFT - monitoring
Vercel Hobby could not carry the CMS
The CMS and the old flowingkhaos app held more than half of a shared Vercel Hobby account’s compute. The CMS moved to a Railway container for a fixed monthly floor; its data stayed on Neon. Why, what it cost, and what would reverse it.
Vercel · Railway · Payload · Next.js · Neonopened cost · Railway Hobby: 5 USD/month with 5 USD of usage included (published); whole box at idle ≈ 13–19 USD/month (estimate); Neon 0 USD (measured).OVRCTXINVREPAFT - monitoring
The $5 video bill a pricing API said was $1.86
We topped up fal by $10, rendered ten short video drafts, and had $4 left. The console that priced each draft said we had spent $1.86. fal's pricing API returns one price per model, and it is the cheapest tier: 360p at $0.03 a second. Our drafts rendered at 720p, which bills $0.10. The fix multiplies the API's price by a factor per resolution. On 8 October the same gap came back another way, so now the console and the terminal both read fal's own bill.
fal · Gemini Omni Flash 1.1 · OSI · Next.js 16opened cost · $0.03 per second is what fal's pricing API answers. The model page bills $0.10 per second at 720p and $0.15 at 1080p. About $3.34 unbudgeted that day; the larger cost was a spend ceiling built on the wrong number.OVRCTXINVREPAFT - monitoring
Google found 64 of my pages and did not come back: what Validate Fix moved, and the five it did not
19 of 103 pages indexed, 64 discovered not indexed — canonical data disproved duplicate content; orphaned service pages needed links, not Validate Fix.
opened cost · 0 USD in services; about two sessions of work (estimate).OVRCTXINVREPAFT - resolved
I pressed Run, the command worked, and Claude stayed silent until I typed again
Claude Code hands some commands back to the operator instead of running them. We built a small mod that lists them in a pane with a Run button. The first live press ran the command and Claude said nothing. The mod had written the output into the transcript, and a transcript row is read only when the next turn starts. Nothing started one. The fix sends the output as a prompt, so a turn starts at once, and falls back to filling the prompt box when a turn is already running.
Claude Code 2.1.291 · mods API · $.session.append · $.prompt.submit · $.prompt.fillopened · resolved cost · No money. One extra prompt per press, and a feature that passed eight tests and did not work.OVRCTXINVREPAFT - resolved
Astro trailing slash on Cloudflare: fix the 307 and sitemap duplicates
Search Console said 1 of 26 pages indexed. The site answered every address twice, with and without a trailing slash, joined by a 307: Google kept the slashless pages and filed the sitemap's slash addresses as duplicates. The pages were indexed all along; the sitemap was the only thing that did not know. The repair: one URL form everywhere, a permanent redirect at the zone, HTTPS with HSTS, a sitemap the site writes itself with a true lastmod, and one dated schema.org graph on every page.
Cloudflare Workers · Astro · Payload · Search Consoleopened · resolved cost · 0 USD in services; about two sessions of work (estimate). The real cost is five weeks with one page in the index.OVRCTXINVREPAFT
Six entries · four open · two resolved · struck-through parts are not written yet
The next fix, in your inbox the week it happens.
Skip the build. Start from code that ships
Production-ready code under a one-time licence. Buy it, and start building with the code you bought.
- Pay once
- Resell what you build
- No subscription
The columns, fixes and workshops continue in the community: SEO, AI, and making money with code.
Join on WhopLuke Sidney writes and builds everything here, alone, in the open. lukesidney.me