Foundation:
- Total rebuild: an entirely new codebase, replacing the old flat, 3-table database (teams, games, news) with a fully normalized schema (seasons, series, flights, teams, team-seasons, rosters, games, awards, and more) - nearly every stat on the site is now computed live from real game data instead of being hand-maintained.
- Upgraded to PHP 8.2 and MariaDB 10.4
- Every database query now uses parameterized prepared statements
- New lightweight content-management system for text-heavy pages (Rules, Format, League History, League Decisions, this Changelog), edited through a rich-text editor in the admin panel instead of being hardcoded into the page
- Full mobile-responsive pass across the entire public site - tables, filters, navigation, and the homepage all reflow properly on a phone for the first time
Significant New Features:
- Cancellation / Reschedule Alerts - a cancelled or rescheduled game now surfaces as a site-wide banner instead of just another news post - red for a cancellation, amber for a reschedule - visible on every page of the site for as long as it's active, so it's much harder to miss than something buried in the news feed.
- Franchises - a team's identity and its display name are no longer the same thing. A team can rename itself every season - new sponsor, new skip, a joke that got out of hand - without losing continuity: lifetime stats, head-to-head records, and season-by-season history all still trace back to the same underlying franchise, and past seasons keep showing whatever name the team actually went by at the time instead of being silently rewritten.
- Speed - lifetime stats and standings are calculated as scores are entered and stored, not recalculated from scratch on every visit. Even the heaviest historical pages - the full 8,000+ game history, 28 seasons of standings - load instantly instead of running a live calculation across the entire database every time someone loads the page.
- Full Line-Scores - a game's result can now be recorded end-by-end, not just as a final score, capturing how a game actually unfolded rather than just who won.
- All-Time Rank, Everywhere - player and team stats now show exactly where they rank in league history right alongside the number itself - not just "340 wins," but "340 wins, 1st all-time."
- Find Any Player, Instantly - a single search box on the Teams page finds any player who has ever played in the league, across all 28 seasons, instead of having to browse team by team to track someone down.
New Design Language:
- New visual identity built around the club's maroon/charcoal palette, with one consistent card, header, and badge language used everywhere instead of a different look per page
- Award badges (Club/Regular Season/Flight Champions, Series Winners/Ties) now use a consistent gold/silver/charcoal badge system site-wide
- Clearer, calmer win/loss indicators throughout schedules and results
- Collapsible filter panels and jump-menus on mobile, so a page's controls don't push the actual content off-screen
Administrative:
- Entirely rebuilt admin panel
- Score entry: week-grouped inline entry with an end-by-end line-score popup per game
- Schedule tool: timeslot grid, drag-to-slot game moving, and CSV schedule upload
- Player management, including a duplicate-player merge tool
- Franchise management: rename, merge, and reassign a season to a different franchise
- Season copy tool (duplicates series/flights/point system into a new season without carrying over teams or games)
- Champion-photo uploads built directly into the awards form
Historical Data:
- Backfilled 1998-2009 regular season results (3,000+ games) and series winner/tie awards from historical records
- Backfilled 2002-2009 playoff bracket results from hand-drawn historical brackets
- Corrected historical Club Champion / Regular Season Champion award labels to reflect how those titles' meanings changed over the league's history
- Migrated League History, League Decisions, Rules, and Format pages over from the old site, with Rules and Format now organized with a proper table of contents instead of one long page
New / Redesigned Pages:
- Home
- New status card highlighting the current series' schedule and results, or the season's champions once it's complete
- A dedicated banner when playoffs are underway
- Schedule & Results
- Filter by season, series, week, flight, or team name
- Games grouped clearly by date and time
- Standings
- Series standings and season-overall standings side by side
- Rank-change indicators week to week, and star icons marking series wins
- Team Page
- Full season-by-season history, roster, and head-to-head scouting report against any opponent
- Player Page
- Lifetime stats, season-by-season history, and where each stat ranks among every player in league history
- Playoffs
- Full bracket view per flight - qualifying pools, semis, finals, and champion, with photos where available
- Past Champions
- Gallery view of every season's champions across all flights, with photos
- Series Winners
- One continuous ledger of every series winner across league history, instead of a separate table per season
- Team Records & Player Records
- Single-season and lifetime leaderboards across many more categories than before - points per game, win streaks, series wins/ties, and more
- New: Player Playoff Stats & Championship Records
- Lifetime playoff-only stats, and "who's won each championship most" leaderboards
- New: League Facts / Trivia
- Fun facts and records pulled from the full history of league data - tightest finishes, biggest runaways, longest rivalries, and more
- New: Turbo Nerd Stats
- Complete Game List, Flight Scoring by Season, All-Time Standings, and Team vs. Team / Player vs. Player head-to-head tools
- New: League History & League Decisions
- The story of how the league's rules and structure have evolved over time, and the reasoning behind the bigger changes