--- description: Core Mixmaker product context alwaysApply: true --- # Mixmaker Context - Mixmaker is a web app for organizing Overwatch scrims for communities of 20+ players. - Read the relevant files in `memory_bank/` before meaningful product or architecture changes. - The core flows are Discord auth, player profiles, event calendar and RSVP, role-based team balancing, coin toss, map and hero bans, Bo3 results, and tournament brackets. - Players sign in through Discord and may edit only their own Tank, Damage, and Support Overwatch ranks (Bronze 5 through Champion 1), preferred roles, and up to three preferred teammates. - Scheduled events support Going, Maybe, and NotGoing participation statuses. - Admins may manage events and change RSVP for another player; store the acting account for every administrative override. - The balancer creates full 5v5 teams with 1 Tank, 2 Damage, and 2 Support; unmatched players remain in reserve. - Rating balance and 1/2/2 are hard priorities; role and teammate preferences are soft weighted objectives. - An Admin assigns one captain from each team's current roster; captain permission is scoped to that team. - Keep the UI polished, responsive, mobile-first, and styled as a dark esports control panel. - Keep all user-visible strings available in Russian and English through the shared localization layer. - Business rules and draft state are enforced by the backend; the frontend must not be the source of truth. - Preserve draft, result corrections, and match history as auditable actions instead of silently rewriting completed steps. - Production deploys to Coolify as one Docker Compose stack with PostgreSQL; do not declare custom Compose networks unless explicitly required. - Do not commit production secrets, publish PostgreSQL ports, or omit persistent storage, healthchecks, and backup documentation. - After meaningful product, architecture, API, data-model, deployment, or workflow changes, update the relevant files in `memory_bank/` in the same task.