How to manage rosters, build schedules, and set up a new season
The Offseason Hub is your central command center for preparing the next season. It brings together six tools that handle everything from roster building to schedule creation and season publishing.
The offseason roster management page gives you a league-wide view of every team's roster with drag-and-drop functionality for moving players between teams. Open Offseason Roster Management
When you first open the page, you can start from scratch or load rosters from a previous season:
Moving players between teams is as simple as dragging their card:
All changes are tracked and saveable:
Saves the current roster state to Firebase so others can see your updates.
View a log of all roster moves β who was moved, by whom, and when. Great for tracking trades and decisions.
offseasonRosters/current) that is completely separate from live season data. If you want to start fresh β for example, after a test run or to redo planning β go to Admin Content β Offseason Data tab and click Wipe Offseason Roster Data. This is safe to do at any time and will not affect player stats or published seasons.
The Snake Draft room lets captains and league staff distribute unassigned players across teams in a live, real-time drafting session. It reads directly from the offseason roster's unassigned pool and writes picks back to it when complete. Open Snake Draft
Before the draft begins, you configure three things:
When ready, click to lock in the configuration and enter the live draft room.
The draft room has three panels running simultaneously:
The clock bar at the top always shows which team is currently on the clock, the round, pick number, and available player count. If a timer is active, it counts down here.
Skips the current pick slot β the team passes and the player stays in the pool for later rounds.
A snake draft reverses the pick order every round, ensuring fairness:
Teams that pick last in one round get first pick in the next.
Once all picks are made, the button appears. Clicking it:
offseasonRosters/currentdraft_completed entry in the offseason roster changelogFrom the completion screen, go back to the Roster Planner to review full updated rosters, or click to reset and run another round.
If the page is closed mid-draft, it automatically resumes where it left off when reopened β the full draft state is stored in Firebase in real time. All picks, the order, and the current pick index are fully restored.
Multiple users can have the draft open simultaneously and all views update live as picks are made β great for in-person draft events where captains are watching on their own devices.
drafts/current collection. To wipe it entirely β for a re-do or after testing β go to Admin Content β Offseason Data tab β Wipe Draft Data. This is safe and will not affect any published season data.
Automatically create balanced schedules with time slot assignments. The generator walks you through a multi-step wizard. Open Schedule Generator
After generation, each schedule receives a balance score:
Saves the schedule directly to Firebase, ready to be used in the Season Setup Wizard.
Export as a CSV file for offline review or manual editing.
Not happy? Generate a new schedule with the same parameters.
After generating a schedule, use the balancer to make targeted adjustments before publishing. Open Schedule Balancer
Upload a CSV file (from the Schedule Generator's export or your own file) by dragging it onto the upload zone or clicking to browse. The balancer reads the schedule and displays it in an editable table.
Click on any cell in the schedule table to edit it. Common adjustments include:
The balancer automatically flags potential issues:
Below the schedule table, you'll see a summary panel for each team showing their total games, home/away split, and opponent distribution β helping you spot imbalances at a glance.
Upload any schedule file and get a detailed statistical breakdown of how balanced it is. Great for reviewing a schedule before or after publishing. Open Schedule Analyzer
Drag and drop a CSV or Excel file onto the upload area, or click to browse. The analyzer automatically reads the file and extracts all game data.
to clear and upload a different file.
Every team receives a MOLSKI (Mountainside Overall League Schedule Kindness Index) rating that measures how favorable or tough their schedule is. The league-wide rankings show all teams sorted by their MOLSKI score.
Factors include opponent distribution, time slot variety, rest days between games, and home/away balance.
Select any team from the sidebar to see their detailed schedule view:
Once a season is live, use the Schedule Editor to make changes to individual games β rescheduling, time changes, or field updates β and notify players directly. Open Schedule Editor
With a game selected, you can change:
A live preview shows the notification message that will be generated based on your changes.
Saves the updated game data to Firebase and generates a formatted message.
Opens WhatsApp with a pre-formatted message about the schedule change so you can quickly notify the league chat.
The final step β create and publish a new season with a guided wizard that ensures nothing is missed. Open Season Setup Wizard
This creates the season document in Firebase with all teams, games, and metadata. The season becomes immediately visible on the website.
Before running the wizard for real, you can do a full dry run without touching any production data. Sandbox mode saves everything to isolated seasons/sandbox-* documents that the live site ignores completely.
sandbox- (e.g. sandbox-2026-summer). The "Set as Active" checkbox is disabled automatically.
You can also toggle sandbox mode on and off mid-session with the same button β it updates the season ID preview in real time.
Follow this sequence for the smoothest offseason experience:
sandbox-* and has zero impact on production. Wipe it when done from Admin Content β Offseason Data.
Every offseason tool that writes data has a safe way to test and reset. Here's a full map of what writes where and how to clean it up.
offseasonRosters/current β completely isolated from live season data. Safe to wipe anytime.drafts/current β also isolated. Safe to wipe anytime.seasons/{id} β this is live production data. Use sandbox mode before running for real.seasons/sandbox-{id} β completely ignored by the live site. Safe to wipe anytime.All cleanup is done from Admin Content β Offseason Data tab. The tab shows a live status for each collection so you can see what currently exists before wiping.
offseasonRosters/current and its changelog/presence subcollections. Use to start roster planning fresh.drafts/current. Use to reset a draft that was run for testing or to redo.sandbox-, including all their game documents. Use after testing the Season Setup Wizard.Save roster or schedule edits to Firebase
Lock in draft settings and enter the live draft room
Save all picks to rosters and close the draft
Pass on the current pick β player stays in pool
Randomize draft order
Reset draft data and start fresh
Push generated schedule data to Firebase
Publish a new season from the wizard
Switch wizard to sandbox β saves under sandbox-*, not production
Reset roster planner (Admin Content β Offseason Data)
Reset draft (Admin Content β Offseason Data)
Clean up wizard test data (Admin Content β Offseason Data)
Export schedule to a local CSV file
Flip home/away teams for a game
Create a new schedule with same settings
Send schedule change notification
View roster change history
π£ Offseason Hub β Central dashboard with all tools
π₯ Offseason Roster Management β Drag-and-drop roster building
π Snake Draft β Live draft room for distributing unassigned players
π² Schedule Generator β Automatic schedule creation
βοΈ Schedule Balancer β Fine-tune adjustments
π Schedule Analyzer β Upload and analyze schedules
βοΈ Schedule Editor β Edit live season games
π Season Setup Wizard β Guided season publishing
π§Ή Admin Content β Offseason Data β Wipe roster, draft, and sandbox data
Questions? Contact the admin team for assistance.
β Back to Offseason Hub