⚽
No Active Game
Enter an opponent name above and tap New Game to get started
Game History
⚽ SubGo
Sideline substitution and game tracker for soccer coaches.
Everything runs in your browser — no account, no server, no internet needed after first load.
Everything runs in your browser — no account, no server, no internet needed after first load.
⚙️ Settings
Position Numbers
Keep Screen On
Buzz Alerts
Field Positions
Use the preset buttons to configure the field for your game format, then fine-tune with individual checkboxes. Any player assigned to a hidden slot is moved back to the bench automatically. When a paired slot (e.g. ST 2) is hidden, the remaining slot centers on the field.
👥 Teams
Switch Teams
Tap the team name button in the center of the header to open the team manager. All rosters and game history are stored separately per team.
Add a Team
Type a team name in the team manager and tap Add. The app switches to the new team immediately.
Delete a Team
Tap ✕ next to the team in the team manager. You must have at least one team. Deletion is permanent.
📋 Roster
Add Players
Enter a jersey number and name, then tap Add Player. Jersey number is optional. Players are stored per team.
Edit Players
Tap ✎ on any player card to edit their name or jersey number.
Remove Players
Tap ✕ on any player card to remove them from the roster.
Setup Guide
First-time users are walked through naming their team and adding players automatically. Re-run it anytime via the Setup guide link at the bottom of the Roster tab.
Feedback
Tap the Feedback link at the bottom of the Roster tab to open a short form to send suggestions or report issues. No account needed.
🎮 Running a Game
Start Game
Go to the Game tab, type the opponent name, and tap New Game. The field appears with labeled position slots.
Place Players — Drag
Press and hold a player chip in the Bench panel briefly, then drag onto any position slot on the field or onto a row in the On Field list. To move or swap players already on the field, press and hold a player dot on the field, then drag to another position — drop on an empty slot to move, or on an occupied slot to queue a pending sub.
Place Players — Tap
Tap a bench player to select them — they highlight in blue and the bench header shows "tap a position." Then tap any field slot or On Field row to place them. Tap the same player again or tap Cancel to deselect.
Game Clock
Tap Start in the top right to run the clock. Tap HT at halftime — the clock resets to 0:00 but all player minutes carry forward into the second half. If you forgot to start the clock on time, tap the clock display while paused to reveal −30s and +30s nudge buttons to adjust the time. Tap the clock again to hide them. The clock uses real wall time — if you briefly switch apps or receive a call, it catches up automatically when you return.
Rotation Plan
Tap 📅 Rotation Plan to build a pre-game substitution plan. Add waves — each wave picks a target half and minute, a From lineup (or current field), and a To lineup. The diff between the two lineups determines proposed subs and position moves. When the clock reaches a wave's minute a banner appears with Review and Skip buttons. Reviewing shows proposed changes which the coach can apply or skip. The stop toggle at the top of the plan pauses all wave alerts without clearing the plan.
Saved Lineups
Tap 📋 Saved Lineups below the New Game button to open the lineup manager. Set up players on the field, then type a name and tap Save Current to store the lineup. Load a saved lineup at any time to restore it — players not on the roster are skipped automatically. Lineups are saved per team.
Halftime / End Game
Tap HT to start halftime. The button changes to End for the second half — tap it to close all player stints and stop the clock. After halftime you will be offered the option to restore the 1st half starting lineup for the 2nd half.
Unavailable
Drag a bench player into the Unavailable zone to mark them absent for this game. On mobile, tap a bench player to select them, then tap the Unavailable box to mark them. Tap Reset to return all unavailable players to the bench, or start a new game to clear automatically.
Remove from Field
Tap (without holding) any player dot on the field to remove them back to the bench — a confirmation will appear. Use press and hold then drag instead if you want to move or swap the player rather than remove them.
🔄 Substitutions
Queue a Sub
Drag or tap-select a bench player onto an occupied field slot. A pending sub is queued — the outgoing player dims and shows a pulsing orange ring. Multiple subs can be queued at once.
Call Out
Tap 📋 Call Out to open a full-screen display. Each substitution is shown as a paired card — incoming player on the left, position in the center, outgoing player on the right. Easy to read aloud on the sideline.
Confirm Subs
Tap ✓ Confirm when play stops to execute all queued subs at the current game minute. Tap ✕ on any pending row to cancel that individual sub.
⏱ Alerts
Bench Alert
In the Bench panel, set the minutes threshold (default 5 min). Any player on the bench longer than that is highlighted in orange with their bench time shown. The phone will also buzz once when they first hit the threshold. Uncheck the box to disable.
On Field Alert
In the On Field panel, set the minutes threshold (default 20 min). Any outfield player on the field longer than that is highlighted in orange. The phone buzzes once when they first hit the threshold. The GK is never flagged and is always pinned to the bottom of the On Field list — outfield players sort by longest time on field first. Uncheck the box to disable.
Alert Resets
Both alerts clear the moment a player is substituted. Halftime resets all timers so second-half alerts start fresh.
⚽ Score Tracking
Log a Goal
Tap your score (blue) in the header to open the scorer picker — choose who scored from the on-field players, or tap Own Goal. Tap the opponent score (white) to log their goal instantly.
Undo / Edit
Tap ↩ in the header to remove the last goal. In the Summary tab, expand a game and tap ✎ to edit a scorer or ✕ to remove a goal individually.
📊 Summary
Expand a Game
Tap any game row to expand it and see the final score, goal log with scorers and minutes, and a full player breakdown sorted by total time played.
Starters
Each expanded game shows collapsible 1st Half Starters and 2nd Half Starters sections — a snapshot of exactly who was on the field when the clock first started and when HT was pressed. Tap the header to expand.
Position Breakdown
Under each player's name, small tags show every position they played and how many minutes at each — for example CB 15' CM 8'. Sorted by most minutes first.
Export CSV
Tap CSV at the top of the Summary tab to download all game data as a spreadsheet file.
💾 Data & Storage
Storage
All data is stored locally on this device only. No data is sent to any server. Clearing your browser data will erase all teams, rosters, and games.
Offline Use
After the first load, SubGo works without an internet connection. Install it to your home screen for a full-screen app experience.
Install on Phone
Android: open in Chrome, tap the three-dot menu → Add to Home Screen. iPhone: open in Safari, tap the Share button → Add to Home Screen.
Dev Mode
Add ?devmode=true to the URL to make the game clock tick 30 seconds per second — useful for testing without waiting through a full match.
⚗️ SubGo Test Panel
Tap "Run All Tests" or select a suite above.
✓ 0 passed
✗ 0 failed
0 total
v1.0.48