# Netlify hosting config for mnswpr.com — the app-level, declarative hosting # state, codified here so hosting is reproducible from the repo and deployed via # CLI (`pnpm -F mnswpr run deploy:site`), never the web dashboard. This file is # app infra *config*; the CLI that reads it (`netlify-cli`) is app infra *tooling* # and lives in this app's devDependencies. See AGENTS.md "Infra". # The `deploy:site` script pre-builds locally and uploads `dist` via the CLI, so # this [build] block is only exercised when Netlify builds the site from git # (dashboard "base directory" = apps/mnswpr). It is a pnpm workspace, so # `pnpm install` from here installs the whole monorepo before building. [build] command = "pnpm install --frozen-lockfile && pnpm run build" publish = "dist" [build.environment] NODE_VERSION = "20" # Production leaderboard namespace (dev/test uses `mw-test`). Applies to # git-triggered builds; local CLI builds read app/.env.production instead. # Firebase VITE_* keys are public but are set as Netlify env vars (via # `netlify env:set` / `netlify env:import`, not the dashboard) to keep prod # values out of git — see apps/mnswpr/.env.example. VITE_LB_NAMESPACE = "mw" # Pretty URL for the frozen Legends page (built as /legends.html). [[redirects]] from = "/legends" to = "/legends.html" status = 200 # Baseline security headers applied to every response. [[headers]] for = "/*" [headers.values] X-Frame-Options = "SAMEORIGIN" X-Content-Type-Options = "nosniff" Referrer-Policy = "strict-origin-when-cross-origin"