SaaS2025
World Cup 2026 Prediction Platform
Predict the whole FIFA bracket and climb a live leaderboard.
A passion project: a full-stack World Cup 2026 prediction platform built as a pnpm + Turborepo monorepo. Users predict all 12 group standings and the auto-generated 32-team knockout bracket, lock their picks, and accumulate points (max 845) against official results via a live leaderboard.
The interesting core is a pure, deterministic tournament engine shared by both the web UI and the API.
Architecture
- API: NestJS + PostgreSQL/Prisma REST API with custom JWT auth (access + refresh-token rotation with reuse detection), role/ownership guards, Google OAuth scaffold, password reset and OpenAPI/Scalar docs.
- Web: Next.js 15 (App Router) + React 19, Tailwind, shadcn/Radix, TanStack Query, React Hook Form + Zod, protected routes.
- Engine: a pure, deterministic tournament engine (bracket generation, qualifier propagation, set-based idempotent scoring) shared by web + API, with shared Zod schemas validating forms and DTOs from one source.
- Infra: Docker Compose (web, API, Postgres, Mailhog), automated migrations and seeding; Vitest + Jest covering bracket invariants and scoring.
Tech stack
NestJSPostgreSQLPrismaJWT/PassportNext.js 15React 19TanStack QueryZodTournament EngineZod SchemasTurborepopnpmDockerVitest · Jest