Skip to main content
CMS has a TanStack Start/Void candidate. Production publication and routing are held; this packet records the source target and checks required before Rex authorizes a cutover. It does not authorize deployment, provider changes or data writes.

Worker and configuration

  • Worker: tuturuuu-cms for production; the staging Worker name for staging.
  • Hosts: cms.tuturuuu.com and the /cms mount on tuturuuu.com. The configuration rejects unknown hosts and disables Workers.dev and preview URLs.
  • Build: cd apps/cms && bun run build:cloudflare.
  • Static asset binding: ASSETS. Optional internal API origin variable: INTERNAL_WEB_API_ORIGIN. The build profile sets TUTURUUU_NOINDEX.
  • Runtime secret names required by CMS: TUTURUUU_APP_COORDINATION_SECRET, SUPABASE_SECRET_KEY, and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY. Abuse guard: service binding ABUSE_GUARD to tuturuuu-abuse-guard, secret ABUSE_GUARD_KEY_PEPPER, text variable ABUSE_GUARD_FAMILIES=proxy, and optional ABUSE_GUARD_TIMEOUT_MS. Upstash credentials are not required. NEXT_PUBLIC_SUPABASE_URL is a non-secret environment binding. Set secret values only in the protected runtime secret store; this page records names only.

Smoke checks

After an authorized cutover, probe public deployment identity at both mounts and verify the native runtime header and expected source SHA:
Run the existing isolated emitted-worker and cutover smoke checks before publication:
Confirm anonymous / redirects to /login, unknown hosts are rejected, and the root and mounted build-info requests return the deployed identity.

Rollback

Before routing changes, Rex records the immutable Vercel deployment ID and the exact routes, custom domains and DNS records being replaced, plus the one-step restore command and rollback owner. No deployment ID is recorded in this repository, so Rex must capture it. Restore that routing to the prior deployment immediately if smoke or the post-cutover watch regresses. Keep the deployment available for the full release cycle.