Raxx · internal docs

internal · gated

Cloudflare Pages runbook

System: cloudflare-pages (getraxx.com landing page + future static surfaces) Owner: sre-agent Last incident: 2026-05-27 (waitlist form hidden — see RCA 2026-05-27-getraxx-waitlist-flag-invisible) Last reviewed: 2026-05-27

How to tell it's broken

Architecture — where the build actually happens

Critical: The deploy-getraxx.yml workflow uses a build-then-upload pattern. CF Pages only hosts the pre-built dist/. It does NOT run npm run build itself.

GitHub Actions runner
  └─ npm ci && npm run build    ← Vite bakes env vars INTO the bundle here
  └─ wrangler pages deploy dist/  ← uploads static files to CF Pages

Cloudflare Pages
  └─ serves the uploaded dist/   ← has no knowledge of original env vars

Consequence: CF Pages project env vars (set via dashboard or API) have zero effect on what ends up in the bundle. The flag values must be present in the GH Actions step shell at build time.

Env vars for feature flags

Feature flags in frontend/getraxx-landing are injected via Vite's define block in vite.config.js. The values Vite reads come from loadEnv(mode, cwd), which reads from the shell environment and any .env files.

Where to set them:

What you want Where to set it
Always-on flag in production builds Add env: block on the Build getraxx landing step in .github/workflows/deploy-getraxx.yml
Secret build-time value Store in Infisical; add a load-vault-secrets step before the build step; inject into env:
Local dev flag override .env.local in frontend/getraxx-landing/ (gitignored)

Do NOT use: CF Pages project env vars for anything that affects bundle content — they are irrelevant for this pattern.

How to diagnose (in order)

  1. Check whether the issue is visible in the live bundle. Download https://getraxx.com/ and search the JS bundle for the feature string (e.g., "opening soon" vs `