A modern, mobile-friendly leaderboard site for Dawn of War: Definitive Edition. Live: https://www.dow-de.com
- Leaderboards: live ladders with filters, sorting, and shareable URLs
- Search: player lookup across ladders with Steam-enriched names
- Profiles: player stats, recent matches, and rank movement
- Advanced Stats: matchup, map, and race breakdowns (Supabase-backed)
- Replays: upload, browse, and download shared replays
- Next.js 14 + TypeScript
- Tailwind CSS
- Relic Community API + Steam API
Prereqs: Node.js 18+, npm
npm install
npm run devVisit http://localhost:3000.
The app loads Supabase on startup, so local dev needs a Supabase project.
- Create a Supabase project (cloud or local) and apply
supabase/migrations. - Run the reference seed SQL:
supabase/seed/seed_reference.sql. - Copy
.env.templateto.env.localand set:NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY(service role, server-side)
- Optional:
npm run seed:leaderboardsto populate leaderboards/players. - Optional:
npm run enrich:playersfor Steam names, levels, and countries. - Optional: deploy
supabase/functions/steam-player-countand schedule it to keep the live player badge updated.
npm run dev
npm run build
npm start
npm run lint- API details:
API-DOCUMENTATION.md - Data collection tools:
ADVANCED-STATISTICS.md - Backups:
docs/backups.md - Deployment notes:
docs/pro-deployment-summary.md
We welcome fixes, features, and docs improvements.
- Browse or file issues: https://github.com/EnzeD/dow-leaderboards/issues
- Fork and create a branch:
git checkout -b feat/short-description - Keep changes focused and follow existing patterns
- Run
npm run lintbefore opening a PR - Open a PR with a clear summary and screenshots for UI changes
