← Blog
ARCHITECTURE4 min read

Commander collapses to a single domain

May 6, 2026Dekimu

Commander used to live across two domains — runcommander.com for the marketing landing and commander.dekimu.com for the customer dashboard. As of today, that's one domain, one repo, one cookie. The customer dashboard moves to runcommander.com/dashboard, mirrored at commander.es/dashboard for Spanish. The dekimu.com subdomain retires.

Why two domains was the wrong shape

The original split made sense on paper: marketing on a top-level brand, dashboard on the company subdomain, founder ops untouched. In practice, every customer hop crossed a cookie boundary, every shared component lived in two places, and every deploy was a coordination problem. Two repos, two Vercel projects, two sets of envs. The simpler shape — one repo, one project, two domains aliased — does the same job with a third of the moving parts.

What changed under the hood

All dashboard surfaces — license, instances, run history, ops, settings — moved into the commander-landing repo. The slug consolidated from `commander-app` to `commander`. The auth cookie renamed to `commander_access`. The agent token renamed from `CLAUDE_CODE_OAUTH_TOKEN` to `COMMANDER_AGENT_TOKEN` with a one-cycle legacy fallback so existing workers don't break on the cutover. Type-check green across all four touched repos; thirty-nine worker tests still pass.

The right architecture is the one with the fewest seams that customers can feel. We had two seams. Now we have zero.

What customers see

Nothing — that's the point. Old commander.dekimu.com URLs return one-time redirects to the new path. The license server keeps the same shape and signs the same payloads with the same key. Existing workers heartbeat against the new URL after a single env flip. The Stripe webhook re-points when checkout re-enables. From the user side, runcommander.com is now the whole product: pricing on the front, dashboard on the back, single login between them.

Decision doc is up at the architecture log; the migration brief and full system map are public. Commander itself stays gated on the activation triggers we wrote down weeks ago — the domain collapse was always a precondition, not a launch.

ARCHITECTURE
← Back to blog