Fantasy-football roster game built with the Next.js App Router, React 19, MUI, Firebase, and Firestore.
- Node 22 LTS
- npm 11+
npm install
npm run dev
npm run lint
npm run typecheck
npm run test:engine
npm run buildStart local development with npm run dev, which now starts the Next app and the Firebase emulators together, then open http://localhost:3000. If you only want the Next app, use npm run dev:app.
To keep local development off PROD Firebase, set FIREBASE_ENV=local in .env.local. npm run dev will bring up the emulators automatically. Run npm run dev:seed in another terminal to seed local auth users plus a deterministic fantasy fixture dataset for players, teams, player seasons, team seasons, and daily puzzle regeneration.
The primary Next.js app now lives under apps/fantasy-games, and its App Router entrypoints start at apps/fantasy-games/src/app.
Before calling a non-trivial code change ready, confirm npm run dev boots cleanly and then run the relevant static checks (npm run lint, npm run typecheck, and any targeted tests such as npm run test:engine).
Core play routes:
/play/[variant]for local and AI matches/play/dailyfor the daily challenge/play/online/[variant]for online matchmaking/play/matches/[matchId]for active online matches
- Local and AI matches persist in
localStorage. - Firebase Auth and Firestore power daily submissions, leaderboard reads, and online multiplayer.
- Shared roster and player-catalog primitives live under
apps/fantasy-games/src/domains. npm run builddoes not run linting automatically on Next 16, so keepnpm run lintin CI.