Loading your league…
This is usually a dropped connection. Your team is safe — nothing has been lost.
Connect to Supabase
One-time setup on this device. Use your project URL and the anon key (Project Settings → API). Stored only in this browser.
Run a fantasy draft league on any competition.
Draft real squads from the Premier League, the Champions League or a World Cup — then design the scoring system yourself and check it's fair before a ball is kicked.
- ⚖️ Build your own points system, and backtest it against real past seasons
- 📅 Trade and lineup windows that follow the real fixture calendar
- 🏆 Head-to-head or points tally · waivers · captains · flexible formations
Sign in to create or join a league. Your teams follow you across devices, and you stay signed in until you sign out.
You followed a reset link, so you're signed in already. Set a new password to finish.
Draft against bots to try the room, the clock and your shortlist before the real thing. Nothing here affects your real leagues.
Create a league
Pick a format to start from. You can change anything before you create it.
Who's in the draft pool.
Squads & fixtures are pulled once and shared with every other league on this competition, so most of the time there's nothing to do here. A key is only needed if this server has none configured.
🥅 Squad ▾
🐍 Draft order ▾
Who picks first. Either way the draft snakes — the order reverses every round, so picking last in round one means picking first in round two.
📊 Scoring ▾
The pull is shared and incremental — it skips matches already loaded and only fetches ones played since, so re-running it just tops up. First load of a full season can take a few minutes. Uses the API key from the Competition section.
🌍 Team bonus ▾
Each manager also drafts a team (national side or club) that banks bonus points as it goes deep — a fun knockout-tournament layer. Turn it off for a pure players-only league.
🏆 Format & trades ▾
Instant: free-agent swaps apply immediately (first-come). Waiver: claims queue and resolve when the window closes, in reverse-standings priority (last place picks first).
Applies to both modes — the number of free agents a manager can bring in each window. Instant: swaps beyond the cap are blocked. Waiver: only that many claims are awarded per window.
Each manager names a captain (double points that round) and a vice-captain (doubles instead if the captain doesn't play at all). Set them in the lineup screen.
Automatic mode reads the competition's matchweek calendar: the trade window opens 1h after a matchweek's last game and closes 24h before the next one; lineups lock 1h before the next matchweek's first kick-off. Best with a fixture-driven competition like the Premier League.
League created! Save these somewhere safe:
Invite code (share with managers):
Admin token (stats entry, keep private):
You're the admin. Join as a manager below to also draft a team.
Join a league
Managers
Drag or nudge to set who picks first. Saved as you go.
Round one runs top to bottom, then reverses each round.
Waiting for the admin to start the draft…
How this league works
Recent picks
Admin access
Paste the admin token you got when the league was created.
🗓 Run the season week to week
Trading window & lineup locks
Open it between rounds (once all teams have played); managers can then trade, swap free agents and change their lineups. Closing it locks everyone's lineup in for the next games — points for each matchday are scored against the lineup that was locked at the time, so later changes never rewrite earlier rounds. Close it before kickoff.
Pull stats now
Fetches completed matches for the chosen date straight from API-Football and writes everyone's stats — same as the 06:00 automated pull, on demand. In-progress games are skipped; re-pull after the final whistle.
⚽ League setup competition, scoring, draft
Competition & players
Pick a competition to draft from. Its teams, squads and fixtures are pulled from API-Football once and shared by every league on the same competition — if another league already loaded it, this reuses that data instantly (no re-pull), and one admin's stat pull updates them all. Leave unset for the built-in World Cup 2026 squads. Season = the API's season key (a domestic league's start year, e.g. 2024 for 2024/25; a tournament's year).
⚙️ Design your draft — scoring & bonuses
Customise how points are scored for this league. Editable until the first game is scored, then locked so past results never shift. Leave as-is for the standard World Cup values.
Draft settings
The draft pool can be sorted by any stat (goals, points, etc.). Switch this off for a blind draft where nobody can rank the pool by numbers.
🤖 Automation scheduled stat pulls
Scheduled pulls · app admin
Turn the automatic daily stat pull on or off per competition. When on, the scheduled job pulls that competition's completed games into the shared stats each day — one pull serves every league on it. When off, use "Pull stats now" by hand.
🏆 Knockout & redrafts cup competitions only
Redrafts & final phase
As the field narrows: (1) optionally remove trailing managers — their points freeze and their players return to the pool; (2) set the keeper rules and open keeper picks; (3) set the new squad size and hit Start — the redraft begins immediately in reverse-standings snake order, so do it when everyone's around, on a day with no matches. Kept players fill squad-quota slots and each keeper costs that manager's earliest draft round. TEAM picks always carry through.
Team stages
How far each national team has progressed. TEAM picks earn cumulative bonuses (R32 +5, R16 +10, QF +15, SF +20, Final +25, Winner +15). Tick out when a team is knocked out — their players then can't be drafted or swapped in and are badged 🚫 everywhere. Changes save immediately.
⏳ Waiver claims
This league's trade window opens and closes from the fixture calendar, so claims resolve on their own once it shuts. Use this only to resolve them early, or to finish a run that was interrupted.
✍️ Manual stats entry only if a pull misses something
Fallback alongside the daily pull. Rows upsert on (player, match), so re-saving edits in place. Use the automation's label format: Home vs Away (YYYY-MM-DD).
Match