Co-authored-by: Cursor <cursoragent@cursor.com>
Mixmaker
Mixmaker is a full-stack application for organizing Overwatch community scrims: Discord authentication, role ratings and preferences, RU/EN UI, event RSVP, preference-aware balanced 1/2/2 teams, captain assignment, Bo3 drafts and results, and a single-elimination bracket.
Stack
- Go backend with Clean Architecture
- PostgreSQL
- React, TypeScript, Vite, TanStack Query and Router
- REST + Server-Sent Events
- Docker Compose for local PostgreSQL and Coolify production deployment
Local development
Requirements: Go, Node.js/npm, Docker with Compose.
cp .env.example .env
make dev-db
make migrate
# Terminal 1
make backend
# Terminal 2
make frontend
The frontend runs at http://localhost:5173; API requests are proxied to the backend. To use the real API locally, copy frontend/.env.example to frontend/.env and set VITE_DEMO_MODE=false.
Create a Discord application, add the callback URL from DISCORD_REDIRECT_URL, and fill in DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, and ADMIN_DISCORD_IDS.
Checks
make test
make lint
make compose-check
Production
The root compose.yaml is designed for a single Coolify Docker Compose resource. Coolify owns routing and networking; the file intentionally does not declare custom networks or publish PostgreSQL.
See deployments/coolify.md for setup, secrets, storage, and backup requirements.
Product documentation
Current decisions and domain rules live in memory_bank/.