🏈

Admin panel

Manage players, stats, users, and your database
← Back to app
Players Leagues Teams Users Clock Weeks Schedule Stats Data sync Player News Export / Import Backups Site Blog
PlayerTeamByeStatusSalaryPts (tot/avg)
Delete players by ID

Paste player IDs (the # shown next to each name), separated by commas, spaces, or new lines. This permanently removes those players, their stats, and takes them off every roster — it can't be undone.

Players (CSV)

Bulk-load your player pool and salaries. Columns: id,name,team,position,salary,bye_week,injury_status,proj_ppg,years_exp,depth_chart. Position is one of QB/RB/WR/TE/K/DST. years_exp is NFL seasons of experience — 0 means a rookie (leave it blank to keep a player's current value; a normal upload won't erase it). Existing players are matched by id first (so you can download the template, change a player's team, and re-upload without forking his stats), then by name + team, then name. Leave id blank to add a new player. Download template gives you every current player — with their ids — to edit, or examples if you have none yet. Pull from Sleeper downloads every NFL player currently on a roster (QB/RB/WR/TE/K + the 32 defenses), with the id already filled in for anyone you already have, so you can review the sheet and upload it. Sleeper's list also holds thousands of retired players (they keep status "Active" but have no team), so they're left out by default. Tick Include free agents to add un-signed players too — these are filtered to ones Sleeper still ranks as relevant, but a few retired names may slip through, so skim before uploading. Update teams from Sleeper is different: it doesn't download anything — it updates the players you already have in place, setting each to his current NFL team (or FA if he's off every roster), without adding or removing anyone. After it runs it lists every player who's currently on a roster but missing from your pool, with a one-click Add to player list.

Join requests

When a manager joins a league they create a team that waits here for your approval.

TeamManagerLeagueRequested
Leagues — each has its own salary cap and trade limit
LeagueCapTradesRosterActivePending
All manager and admin accounts
UsernameRoleActive teamsJoined

Accounts (CSV)

Pre-create logins in bulk. Columns: username,password,role (role is manager or admin; blank password becomes changeme). Existing usernames are left untouched — passwords are never reset here. Managers can also just register themselves; this is only if you'd rather set up accounts for them.

League clock

Loading…

Points, the current week, and player locks all follow this clock. A player locks once their game's kickoff passes. Before the season start, roster moves are free; after it, changing players costs a trade. Bumping the current week forward locks in (saves) every team's lineup for the weeks you leave behind. Manage each league's windows and snapshots in the Weeks tab.

TeamMatchupKickoff (CT)

Schedule (CSV)

Bulk-load the games for a season. One row per team per week. Columns: season,week,team,opponent,location,date,time,timezone, plus optional team_score,opp_score for finished games (the win bonus uses these). location can be the home team's abbreviation (it works out home/away by comparing to the team), or blank for home / @ for away. time uses AM/PM like 7:20 PM. timezone is ET/CT/MT/PT — kickoffs are converted to Central, which the clock and player locking run on (leave blank to enter Central directly). Leaving the score cells blank won't erase scores you already entered. Each player's schedule and lock time comes automatically from their team's games.

Uploaded stats

Browse and delete the stat lines you've uploaded. Deleting a stat removes that player's points for that week. (Use the Stats CSV on the Players tab to add or overwrite.)

These are the raw stats you uploaded — points differ per league, so pick a league to see points under its scoring.

Season projections

Pull season‑long projected stats from Sleeper for the players in your pool and download them as a CSV — it includes id, name, team, position, projected fantasy points (default scoring), projected per‑game, and the projected season stats. This is read‑only; it doesn't change your pool. Sleeper's projections feed is unofficial, so it may occasionally be unavailable.

Data provider

Pull injuries, news, and stats from an outside source instead of (or alongside) manual CSVs. Mock is a built-in simulator that needs no internet — great for testing the live page out of season. Sleeper is a free real feed (injuries, news, weekly stats). Players are matched to your pool by name + position.

Player matches

Check which of your uploaded players line up with the selected provider's feed. Unmatched players won't get injury, news, or stat updates — usually a name/abbreviation spelling difference you can fix in the Players tab, then re-check.

Injuries & news

Updates each matched player's status (Healthy / Questionable / Doubtful / Out / IR) and latest news, shown on the player card. Does not touch official stats.

Player news feed

A separate news source that fills the "Latest news" snippet on player cards, independent of the data provider above (so you can keep Sleeper for injuries and add news here). Tank01 is a paid RapidAPI feed — start on its free tier to test. Your key is stored on the server, not in the app's files.

recent items per sync — higher covers more players (max 500)

Or import news from a CSV

Columns in order: name, team, position, headline, read-more text, source, date. Matched by name + team + position. If a player has multiple rows, the most recent date wins. This overwrites that player's current news.

Weekly stats (optional auto-import)

Pulls a week's official stats into player_stats — the same place your CSV import writes, so your manual CSV stays the source of truth. Use this only if you want to skip the CSV for a week.

Schedule & scores (Tank01)

Pulls a week's NFL matchups and final scores from Tank01 into games — fills opponents on player cards and the win bonus automatically. Uses the same Tank01 key as Player news. Re-run after games finish to pull final scores (it won't overwrite scores you typed in by hand unless Tank01 has a result).

Live tracker

Controls the live page — a separate, unofficial store that resets each week and never affects standings. Choose which APIs it may call, and optionally limit calls to a schedule so you don't burn API quota outside game windows.

When off, the live page shows a notice and makes no API calls. Viewers can't turn it on/off or change how often it refreshes — only you, here.

Times are Central (match the clock). Outside the windows the live tracker shows the last data and makes no calls. Leave the list empty to never block.

Player news spreadsheet

This grid is your player news — each row shows on the matching player's card (matched by name; team and position only break ties between players with the same name). If a player has more than one row, the most recent date wins. Edit cells directly, upload a CSV, or paste CSV, then Save & apply.

Got raw blurbs to convert? Open the News → CSV converter ↗ — paste a feed, generate the CSV, then copy it into Paste CSV… or download & Upload CSV here. Need a feed to copy from? Try NBC Sports Player News ↗.

NameTeamPosHeadline Read more (expanded text)SourceDate

Paste CSV

Columns in order: name, team, position, headline, read-more text, source, date. A header row is detected and skipped automatically.

Export

Download the whole database (players, stats, schedule, settings, users, rosters) as a JSON file you can back up or edit by hand.

Import

Upload a JSON file in the export format. Merge adds/updates without deleting; Replace wipes players, stats, rosters, and schedule first. Users are matched by username; new imported users get the password changeme.

Weekly stats (CSV)

Stats are entered per player per week. Pick a week, download the template (one row per player), fill in the numbers, and upload it back. Fantasy points are calculated automatically. Season totals add up from the weeks on their own. Team defenses are players too: add each one with position DST, then fill its defensive columns — def_tds covers defensive and special-teams TDs. Re-uploading a week overwrites those players' rows for that week (only the players in the file).

Point-in-time backups. Restore rolls everything (lineups, rosters, standings, stats, leagues, the clock) back to that moment — but keeps all current user accounts.
TakenTypeSize

Automatic backups (twice daily)

Your host runs the app only when visited, so a scheduler (cron) is the reliable way to back up at 2:00 AM and 11:59 PM. Set this up once in cPanel → Cron Jobs.

Teams

Pick a league and a team to see its full submitted roster as cards. You can edit the last submitted lineup by changing a card's player ID — saving overwrites the team's saved roster and adds an entry to its save history.

Blog posts

Styled posts, each with its own link (/blog/<slug>) you can share or drop into the header notice. Write in Markdown: # headings, **bold**, *italic*, [text](url) links, ![alt](url) images, - / 1. lists, > quotes.

Loading…

New post

View ↗
/blog/

Format text visually. Use </> to edit the HTML directly if you'd rather.

Site name & header notice

The name shows in the header and browser tab across the whole site. The notice appears as a banner at the top of every page — use it for announcements like "Week 5 lineups lock Sunday at noon." Leave the notice blank to hide the banner.

Select text first, then Insert link to make it clickable.

The notice shows as a bar above the header on every page. Style it below.

Notice preview

Server

Restart the app process. Use this after uploading new files (it applies any database changes) or if the site is acting up. The site goes offline for a few seconds and comes back on its own — no one loses saved data.

Deploy an update

Upload the app .zip to update the site without SFTP. It's syntax-checked first, your current code is backed up to .deploy-backups/, and your database, node_modules, and pm2 config are never touched. The site restarts itself when done. Only upload builds you trust — this runs code on your server.

Optional extra lock: require a passphrase for deploys (on top of admin login). Leave blank and save to remove it.

Season weeks

Set the trade/roster window for each week, jump to that week's stats, and manage lineup snapshots — per league.

Auto-generate windows

Fill every week's window from a repeating weekly pattern, then fine-tune any row below.

Week Trade / roster window (Central) Stats Lineup snapshot

Add game

Add player

Weekly stats

Save history

Every time this team was saved, kept forever. Revert makes that saved team their current team — roster and trades-used both roll back to that point.

Edit snapshot

Fix a frozen weekly lineup. Starters (QB/RB/WR/TE/FLEX/K/DST) are what score that week. Change a slot, remove a player, re-grab a team's current roster, or add a player.

Manage teams

Set how many trades a team has used if something gets out of sync. The cap is the league's trade limit.

TeamManagerStatusTrades used

Add user

Teams belong to leagues — a manager creates one by joining a league from the main app.

Add league

SEASON WEEKS

Standings only sum weeks in this range, up to the current week. Before the trade-count week it's free agency; from it on, changes cost a trade. Set each week's open/close window in the Weeks tab.

STARTING LINEUP

BACKUPS

Roster size: 34 spots. Backups still show as Offense / Kicker / Defense groups, but they share this one total — managers can split it any way (e.g. 11 offense, 0 kicker, 1 defense).

SCORING — YARDS

SCORING — TOUCHDOWNS & OFFENSE

SCORING — KICKING

SCORING — DEFENSE (DST)

Points allowed by the defense:

SCORING — TEAM WIN BONUS

Awarded to a player (or defense) when their real NFL team wins that week. Set to 0 to turn off. Mark the win on the weekly stats upload (a team_won column, 1 = won).