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
- Record the source SHA, the artifact name and the Vercel deployment ID.
- Provision the secrets on
tuturuuu-storefront, deploy the artifact, and run the smoke below against the Worker’s own address. - Attach
store.tuturuuu.com(a proxied route in front of the still-valid Vercel origin where possible), then the alias hosts.
Smoke
/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.