Make your app idea real.

Practical guides for turning a clear brief into an app you can test and own.

You have an idea and no code. The wall is gone.

For thirty years, turning an idea into software meant learning to code, hiring, or finding a technical co-founder. AI removed that wall — and the skill that replaced coding is one you probably already have.

What we're adding to AppX in Q3 2026

Native iOS/Android builds via EAS, custom domains, multi-user collaboration, expanded template gallery, runtime-error-into-chat, voice input. Honest gates and confidence levels — no date promises.

The screenshot that triggered a 5-wave rearchitecture

'Done · 0ms' looked cosmetic. Eight hours of investigation revealed it was a structural bug class. A week of work shipped a 5-wave persistence rearchitecture. The narrative of how a UI screenshot turned into the biggest backend project of the month.

Three things we built and threw away this year

The Railover orchestrator fork, the one-shot bundle server, the V1 chat intent classifier. Each was a real working system in production. Each got deleted when the shape of the problem changed underneath it.

The first AppX architecture, and why we tore it down

v1 was a web-first React generator wrapped in Vite hosting. It demoed beautifully and failed in production. The honest autopsy — what stayed, what went, and why the demo and the product are different things.

Forge deep-dive: webhook-driven state, zero polling, no drift

Sequel to why-we-built-forge. Polling produces a structural drift window. HMAC-signed webhooks on every sandbox transition take state propagation from 5-10s to ~1ms. Idempotent handler, state-machine guard, replay-on-restart, and one slow reconciler kept as safety belt.

Run Kahn's topological sort on every AI-generated plan

AI architects emit multi-file plans that compile, run, and crash because the dependency graph has a cycle nobody looked at. Validate the plan with Kahn's algorithm before you spend tokens generating. Twenty lines of TypeScript catches a class of runtime bugs at near-zero compute cost.

Stop fixing bugs. Start fixing classes.

Every non-trivial bug is one instance of a class. Patching the instance leaves the class alive — and it will mint the next bug. The lens, the patch+class split, the economics, and the trap of fixing classes that don't matter.

Stop jamming AI-agent state into a metadata JSON column

Every soft field in a JSONB blob looks like flexibility. By month six it's a defensive ?? walk on the frontend and a JSON_EXTRACT join the planner can't index. Three forces pull fields out of JSON — and the migration shape that needs no freeze.