There's a text field at the top of the THDCRM dashboard. Placeholder text reads: "hey claude: create a site for claude.thehiddendoor.ai"

You type a domain name. You press enter. Eight steps execute in sequence — Forge spins up the server, PHP 8.3 configures itself, a database appears with a 24-character password nobody will ever type, WordPress installs, an SSL certificate provisions through Let's Encrypt, DNS records materialize in Cloudflare, security headers and cache rules snap into place, and a local record finalizes in the application database. A progress timeline shows animated spinners becoming checkmarks. Duration timestamps accumulate beside each step. When it's done, there's a link to the live site.

That's the feature. You type words. A website exists.

But the story isn't the feature. The story is what it replaced.

Before this session, provisioning a new client site meant opening four browser tabs — Forge, Cloudflare, WordPress admin, the CRM — and manually threading a needle through each one. Create the site in Forge. Wait. Check if it installed. Create the database. Copy the password somewhere. Install WordPress. Go to Cloudflare. Find or create the zone. Add the A record. Add the www CNAME. Configure SSL mode, HSTS headers, cache rules. Go back to the CRM and manually enter the site record. Total time: twenty to forty minutes if nothing went wrong. And something always went wrong. A typo in a DNS record. A forgotten cache rule. An SSL cert that fails because DNS hasn't propagated yet and you didn't notice for an hour.

The ProvisionNewSiteJob is a queued job that runs those eight steps in sequence, with graceful failure handling at each stage. SSL doesn't work yet? Fine — it logs the skip and moves on. The cert will come later when DNS catches up. Subdomain of thehiddendoor.ai? The system detects that automatically and adjusts its Cloudflare behavior — add an A record to the parent zone instead of creating a new one.

The CommandBar component uses regex to extract domain names from natural language. You can type "set up a site for pattonplumbing.com" or just "pattonplumbing.com" and it finds the domain either way. It strips http://, https://, www. — all the noise humans add when they're thinking in URLs.

The same session built a Stripe revenue dashboard behind the Billing page — MRR, subscriber counts by plan, recent charges, growth percentages — all cached for five minutes to stay inside rate limits. The sidebar link says "Revenue" for admins and "Billing" for tenants. A small thing. The kind of thing that makes a multi-tenant platform feel like it was built for each person individually.

Eleven new files. Eight modified. Three hundred fifty modules compiled with zero errors.

But the metric that matters is the one you can't measure in a build log: the distance between intent and outcome. Before this session, "I need a website for this client" was a forty-minute procedure across four platforms. After it, those same words are a sentence you type into a text field.

The best infrastructure is a vanishing act. You collapse the complexity until all that's left is the thought that started it.