A static, kid-safe educational SPA (Vite + React + TypeScript) deployed to Vercel.
Repository: github.com/TMDLRG/WorldGame
- Linked CLI project: team michael-polzins-projects, project
worldgame(fromapp/:npx vercel link --yes --project worldgame). Inspect deployments in the worldgame project. - Import this repo in the Vercel dashboard if you prefer dashboard-first setup, and set Root Directory to
app(the Vite app and app/vercel.json live there). For Git-triggered builds, connect GitHub → TMDLRG/WorldGame on that project (CLIvercel git connectmay fail until the Vercel GitHub integration has access to the org/repo). - Production build:
npm run build→ static output inapp/dist; SPA rewrites and security headers are defined inapp/vercel.json. - CLI: from
app/,npx vercel --proddeploys using the linked team/project. After GitHub is connected, pushes tomainshould trigger Preview / Production per your project settings. - If unauthenticated requests return 401, turn off Deployment Protection for this project (Vercel → Project → Settings → Deployment Protection), or open the URL while signed into the same Vercel team.
.
+-- app/ # Vite app (run npm scripts here)
+-- .github/workflows/ci.yml
+-- vercel.json # in app/, governs CSP + caching
+-- .cursor/ # ORC MCP rules
Requires Node 20+ (see app/.nvmrc).
cd app
npm ci
npm run dev # http://localhost:5173
npm test # vitest
npm run lint
npm run typecheck
npm run build # emits app/dist with hashed assets.github/workflows/ci.yml runs on every push and pull request to main:
npm cinpm run lintnpm run i18n:paritynpm run typechecknpm test(vitest)npm run build
main is protected. Required status checks before merge:
CI / lint / i18n:parity / typecheck / build / unit- 1 reviewer approval
CI runtime budget: under 4 minutes for a clean repo (typical: ~2 minutes).
- Strict CSP, HSTS preload, immutable hashed assets configured in app/vercel.json.
- Zero third-party runtime hosts; zero PII collection.
- See
.cursor/rules/orc-mcp-agent-alignment.mdcfor ORC MCP delivery rules.