Skip to main content
Tools (apps/tools) runs on TanStack Start, Vite+ and Void through the start bridge. Source needs no change to publish: the emitted Worker builds and serves its mount, root and unknown paths in workerd. Routes are never attached from config; the release operator attaches them at cutover.

Worker identity

cloudflare/startup.mjs refuses to serve when a secret is empty or when the coordination secret is the development value.

Build

tools-cloudflare.yaml runs the same steps and seals the output with scripts/ci/tools-native-artifact.py in its cutover-artifact job. Run the build on a CI or remote runner, not a developer machine. Tools has no next/font imports, so no font resolver parity work applies.

Rollback

Remove or repoint the prepared Worker route, or restore the captured DNS, to the last Vercel deployment. The vercel-production-tools.yaml publisher is unchanged by the cutover. Route rollback does not touch data.

Smoke checks

  • GET / on the tools host answers 200 with an X-Robots-Tag header
  • /qr and /random answer 200
  • /api/build-info answers 200 JSON with no-store caching
  • /robots.txt answers 200
  • no 5xx across the above