Dev notes on product & AI
Notes on building products and the AI workflows behind them.
Splitting the Work Doesn't Make It Faster — When to Fan Out Agents
Why eight agents on eight posts isn't eight times faster — dependencies, shared resources, and the cost of putting the pieces back together.
Which Language Does the Root Path Serve — Locale Routing in Four Layers
Country or browser language, what catches a failed guess, and the four layers stacked behind one root URL.
Context Isn't Free — Choosing What Your Agent Reads
Why a longer rules document gets followed less, and how to decide what must always be loaded versus read on demand.
Never Hand-Write a Sitemap — Where to Draw the Line Between Derived and Declared
A hand-written sitemap always drifts — what to derive, what to declare, and where the line between them belongs.
The Agent That Runs While Nobody Watches — Guardrails for Unattended Work
An agent running alone at 3am needs a smaller blast radius, not a better prompt — boundaries, gates, and completion a machine can judge.
Move a Page and the Index Stays Behind — Designing URL Migrations
Lessons from moving one test page — the real difference between 301 and 302, how one slash makes two URLs, and what has to move alongside the redirect.
Writing the Same Prompt a Third Time — Freezing Repeated Work Into a Skill
Moving re-explained procedures into skills — what to freeze, and what belongs in the rules file or the build instead.
Handing Off From Web to App, and Detecting Failure — Deep Link Fallback in Practice
The browser won't tell you the app failed to open. Inferring it from visibility changes — and where that inference breaks.
Agents Get Interrupted — Designing Work That Can Resume
Keeping long agent work from restarting from zero — a queue in the repo, atomic commits, and an explicit START/RESUME split.
Let the Build Enforce the Rule — Invariants for a Bilingual Static Site
Three rules that kept breaking in a docs file, moved into sixty lines of build hook — converting silent errors into loud failures.
CLAUDE.md Is a Contract, Not a README — Writing Rules an Agent Actually Follows
Adding rules made them less likely to be followed. What changed when we cut the file in half and kept only the judgment calls.
Scheduled Publishing on a Static Site — Making Time Pass Without a Server
Scheduled publishing on a site with no server to evaluate the request — the build-time filter, the daily rebuild, and the traps we walked into.
A folder structure that gives AI agents the whole product context
How we organize iOS, Android, Web, and planning documents in one parent workspace without giving up independent repositories.