Roadmap¶
Current phase status, upcoming milestones, and long-term vision for the NHL Live platform.
Phase 1: Discord Server Infrastructure¶
Status: :white_check_mark: COMPLETE
All 32 NHL team Discord servers and the NHL Hub server are created and configured.
Completed:
- 32 team servers + NHL Hub created
- Roles, categories, and channels set up via
scripts/setup_servers.py - Per-guild bot nicknames (e.g., "Flyers Live") and avatars (logo on team color)
- Emojis copied from Colorado to 31 of 32 servers
- Channels locked, rules posted, server descriptions set
- Permanent invite links created for all teams
- Hub guides posted ("Find Your Team", "Follow Other Teams")
- Master spreadsheet populated (
data/team_configs/NHL Discord Servers.xlsx)
Remaining items:
- [ ] Finish Winnipeg emoji copy (re-run
scripts/copy_emojis.py) - [ ] Audit Colorado server (delete 3 duplicate channels)
- [ ] Copy channel descriptions from Colorado to all team servers
- [ ] Set up Discord Community Onboarding on NHL Hub and team servers
- [ ] Sync role permissions across all servers (Colorado as reference)
Phase 2: Bot Parameterization¶
Status: :white_check_mark: COMPLETE
All hardcoded Avalanche references replaced with config-driven values. Per-team discord_meta_{team_key}.json configs, TEAM_REGISTRY in config.py, and parameterized channel management all working.
Phase 3: Relay App Dynamic Theming¶
Status: :white_check_mark: COMPLETE
Token-driven team context (team, sport, branding) implemented. TEAM_BRANDING dict in cogs/relay.py provides dynamic color theming from branding.primary_color, secondary_color, and accent_color.
Remaining items:
- [ ] Collect remaining 21 team wallpapers (11 of 32 collected)
- [ ] EAS build + TestFlight submission with latest wallpapers
Phase 4: Stand Up Team Instances¶
Status: :material-arrow-right: NEXT
Each team needs its own running bot instance with team-specific config. Currently only Colorado is running in production.
Key work items:
- Design instance architecture (shared VM with multiple processes vs. container orchestration; cost analysis for 32 concurrent instances on GCE)
- Create per-team
.envfiles (team-specific tokens or shared token with team context) - Create per-team
discord_meta.jsonfrom existingdata/team_configs/files - Systemd service template for multi-instance deployment (
nhl-live@{team}.service) - Deployment automation (script to deploy + restart specific team instances)
- Monitoring and health checks across all instances
- Per-team channel rename logic and news feeds
- Test with 2-3 teams before full 32-team rollout
Phase 5: Bot-Mediated Communications¶
Status: Future
All member-to-admin communication routes through the bot, keeping the owner less discoverable.
/feedbackcommand routing to private admin channel/contactcommand for bot-mediated DMs to admins- Private admin channel per team server
- Bot-mediated DM responses (admin replies via bot)
- Per-team admin assignment system
- Rate limiting on feedback/contact
Phase 6: Access Control & Monetization¶
Status: Future
- Subscription tiers and pricing (Free, Fantasy Member, Full Member, Scout)
- Payment integration (Stripe, Discord premium, or custom)
- Automated role assignment on payment confirmation
- Subscription management (upgrades, downgrades, cancellations)
- Trial period system and onboarding flow
Phase 7: Multi-Sport Expansion¶
Status: Future
- MLB bot codebase (separate repo
mlb-live-bot, Phase 1 complete) - MLS bot codebase (separate repo
mls-live-bot, Phase 3 complete) - FIFA bot codebase (separate repo
fifa-live-bot, Phase 1 complete) - Sport-agnostic relay message format (already defined in cross-league standards)
- App Store listing update for multi-sport
- MLB/MLS team Discord servers + hubs
Ongoing Maintenance¶
- [x] Keep privacy policy up to date (
relay-app/privacy-policy.md) - [x] Update developer notes with new architectural decisions
- [x] Review and update business model canvas
- [ ] Keep App Store description current (
relay-app/app-store-listing.md) - [ ] Re-capture screenshots after significant UI changes
- [ ] Update scout guide in
OnboardingScreenwhen UI behavior changes - [ ] Keep master spreadsheet in sync when servers change
- [ ] Push privacy policy updates to GitHub Pages