Skip to main content
Storefront (apps/storefront) runs on TanStack Start, Vite+ and Void behind @tuturuuu/start-bridge with the React Server Components plugin. The Next.js build (build) and the Vercel project stay in place until the cutover has been stable, so the canonical host keeps a one-step route back.

Worker profiles

The Worker declares no routes. The hostname is attached at cutover by the release operator. With TUTURUUU_REQUIRE_SECRETS=1 the Worker answers 503 Service misconfigured (no-store) until INVENTORY_APP_URL, SUPABASE_SECRET_KEY and TUTURUUU_APP_COORDINATION_SECRET are present (cloudflare/startup.ts). Names only are recorded here.

Request ownership

Every response carries X-Robots-Tag: noindex, nofollow from the app’s response wrapper.

Build and artifact

storefront-cloudflare.yaml builds the Worker, rejects route-tree drift, records the emitted configuration receipt, runs the emitted-Worker runtime suites (cloudflare/*.runtime.mjs) and uploads storefront-cutover-production-<source SHA> (14 days). It never deploys. Do not run build:cloudflare on a shared development machine.

Cutover packet

Switch

  1. Record the source SHA, the artifact name and the Vercel deployment ID.
  2. Provision the secrets on tuturuuu-storefront, deploy the artifact, and run the smoke below against the Worker’s own address.
  3. Attach store.tuturuuu.com (a proxied route in front of the still-valid Vercel origin where possible), then the alias hosts.

Smoke

Expected: a redirect to /demo, 200, the accepted commit, and a 307 to store.tuturuuu.com.

Rollback

  • Triggers: 5xx above 1% for 5 minutes, a wrong redirect, a checkout handoff failure, or a private store served anonymously.
  • Action: remove the Worker route (or repoint the mapping) so the hosts resolve to the recorded Vercel deployment. Never rebuild on the rollback path.
  • Data: a route rollback changes no catalog, order or payment data.
  • Stability: keep the Vercel project and domains for 14 consecutive stable days before decommissioning, which is a separate approval.