The DeployMill blog

Ideas, examples, and the thinking behind a neutral, agent-safe way to ship web apps.

Engineering

Multi-tenant when the tenant is an agent

Classic multi-tenancy never planned for a tenant that deploys and runs code on purpose, possibly driven by an untrusted prompt. How the threat model shifts when the tenant is an executing agent: VM-grade isolation, default-deny networking, fail-closed authorization, SSRF guards, and an audit trail that makes it all observable.

Read post →
Engineering

Code an agent can change without breaking it

The primary reader of this codebase isn't a human — it's the agent that edits it. Why a dishonest type is a latent bug rather than a style nit, why small and boring beats clever, and how the rules are CI gates instead of vibes so a machine can touch the code without breaking it.

Read post →
Engineering

Apps that sleep

Most apps an agent deploys aren't busy — they should sleep and wake on demand. The hard part isn't the sleeping, it's knowing when an app is truly idle: where the activity signal comes from, the one invariant that keeps a busy app awake, and why the seam made it cheap to build.

Read post →
Engineering

Making free safe to give away

A free tier is a security problem wearing a marketing costume. How the Explore → Builder → Enterprise lineup keeps free contained by design — locked egress at the network layer, no margin-burners — while keeping the one thing that matters open, and lifts the whole envelope from one place the moment a card lands.

Read post →
Engineering

The guardrail that wasn't

I shipped a network security control with a verifier that checked five things, watched all five pass, applied it to prod — and took every app offline in seconds. The script wasn't wrong; it was checking the wrong direction. Why a guardrail that isn't a hard automated check isn't a guardrail.

Read post →
Engineering

The migration that rewrote history

A user reported a job stuck for days. It wasn't — I'd silently rewritten a live production table with one ordinary line of SQL. How a boot migration that succeeded produced bad data, why ADD COLUMN … DEFAULT is a history rewrite, and the rule that came out of it.

Read post →
Engineering

Deploying the thing that does the deploying

DeployMill deploys DeployMill — the best test harness I've ever had, with one terrifying failure mode. Why a bug in the self-deploy path is a deadlock you can't deploy your way out of, why the maintenance clock can't be an app, and why I keep the sharp edge anyway.

Read post →
Engineering

The one-file fix that took down all of production

A clean one-line fix that passed every test took every host on the platform offline minutes after it shipped. The post-mortem: a self-deploy is only half a deploy, a delete-then-recreate primitive turns a write bug into data loss, and a green mock proves nothing about the real external system.

Read post →
Engineering

From prompt to production in one call

Tell your agent to ship an app and a minute later there's a real URL backed by a real repo, database, and domain — no dashboard, no wizard. A look at what start_project does underneath, why the build wait is honest, and why a failure is a resumption point, not a dead end.

Read post →
Vision

The Switzerland of deploy: why neutrality is the moat

Any cloud can wrap its own API in an agent interface — that's table stakes. The position none of them can take is being the neutral aggregator of their own competitors. Why provider-neutrality is the defensible moat, already proven in code on the database primitive.

Read post →
Vision

Handing an agent the keys to production

You don't trust an agent with production by trusting it to be careful — you make careless impossible. A tour of the five guardrails baked into the interface: isolated previews, auto-rollback, diff/plan/apply, an audit trail, and a secret the agent never sees.

Read post →
Vision

The seed idea: why DeployMill exists

Agents could write a whole app and then stall at the one step that mattered — shipping it. DeployMill started as a single stubborn idea: make deploying a first-class thing an agent can do end to end, safely and neutrally.

Read post →