Release notes
Changelog
Every release since the first commit, 62 of them. What shipped, what got better, what broke and got fixed.
Latest release
September 11, 2026Sleeper's own schedule
- Kickoff was assumed to be the Thursday after Labor Day, which is usually right but wasn't this year — the real 2026 opener was Wednesday. Everything that cares when the season opens (phase transitions, prediction locks, lineup alerts) now reads Sleeper's own schedule for it, and only falls back to the guess when Sleeper can't be reached
- v3.4.1
Too late to matter
Sep 11, 2026Fixed- Lineup alerts flagged injured starters whose game this week had already been played — the slot was locked and the injury was news, not a lineup mistake. The Thursday and Sunday checks now leave any player whose team has kicked off alone, and stay quiet until the season has actually opened rather than reporting preseason statuses
- v3.4.0
Sleeper keeps the calendar
Sep 6, 2026League phases now follow the Sleeper league status, and automatic corrections are quiet.
New- Each league's phase now follows what Sleeper says about it: a running draft is the Draft phase, a league in season is Preseason until the Kickoff Game and then the Regular Season, and the Playoffs and Championship land on the weeks the league's own playoff settings say. The suggestion and voting windows still run on the governance clock
Better- Automatic phase corrections no longer notify anyone — a league catching up with Sleeper is housekeeping, not news. Commissioners advancing a phase by hand can untick "Notify members" to move a league quietly, and Admin → League Phases has a "Sync with Sleeper" button that lines every league up on the spot
- v3.3.2
Said once
Sep 6, 2026Fixed- The nightly sync mailed the commissioner "league renewed" for every league, every night, because it counted a league as renewed whenever it found the current season on Sleeper — not only the first time. Renewal and new-league notices now go out once, when the season is first registered, and a folded league still sitting on Sleeper is not reported as new
- v3.3.1
Buttons that stay wired
Sep 5, 2026Fixed- The search bar and the keyboard-shortcuts button in the header stopped responding after the first page you clicked through to — the header is redrawn on every page turn and its buttons lost their wiring. They now work on every page, however you got there
- v3.3.0
Behind the shelf
Sep 5, 2026Better- The front page keeps the archived leagues behind an "Archive" heading that is closed by default — click it to open the shelf. The active leagues no longer share the page with the folded ones
- v3.2.1
The clock starts
Sep 5, 2026Fixed- The scheduled syncs never ran: the server's cron daemon could not start under the account the site runs as, and every deploy had quietly noted that and carried on. The daily 4:00 UTC pass and the in-season pass now run on schedule
- v3.2.0
Fresh ink
Sep 5, 2026The footer now says when the books were last brought up to date, and through the season they are brought up to date every hour.
New- Every page ends with "Data as of …" — how long since the last successful sync, with the exact time on hover. It turns amber if a day passes without one
Better- Through the regular season and playoffs, rosters, matchups, standings, trades and waivers refresh every hour, and every 30 minutes while games are on — not only during game windows
- The admin dashboard keeps a log of every sync — scheduled and by hand — with how long it took and how it ended. A sync cut off mid-run is marked as such instead of vanishing
- v3.1.1
A clean shelf
Sep 5, 2026Fixed- Each deploy now clears the web server's files before laying down the new build. Files the build no longer produces used to stay served indefinitely — the retired share image among them
- v3.1.0
The card on the door
Sep 5, 2026The link preview is drawn on the Ledger now — a nameplate, the seven leagues and their stakes, the years on record.
Better- Sharing a link to the site shows the Ledger's share card: the masthead, the five running leagues with their entry fees, the two on the books, and how long the record goes back — instead of the old glass artwork
- v3.0.0
Volume three
Sep 5, 2026The Ledger is the site now, so the version says so: one system from the front page to the emails, seven leagues on the record.
New- Every page, number and email on the Ledger — Archivo and IBM Plex, OKLCH colour in both themes, one family of panels, chips and tables. The glass interface of 2.x is gone
- A front page that reads like the season: the masthead with credited wire photography, NFL and college scoreboards side by side, the draft ledger, reigning champions, the next college class, lifetime earnings and the latest trades
- Seven leagues on the record — five running, True Ballers and League of Champions archived with every season still browsable
- The Wall of Shame fills itself from departures; the commissioner can add, edit or hide a name
Better- Astro 7 and React 19 underneath; the daily worker, gameday and orphan syncs can be run on demand
- Site copy and documentation audited against the code, league by league and number by number
- v2.159.3
Last year's champions, filed under last year
Sep 5, 2026Reigning champions are the ones who actually won a title, with the record they won it on.
Fixed- The front page had crowned last season's winners as this season's at 0–0: Sleeper labels a renewed league with the previous winner's roster, and the nightly sync was filing it under the season being played. A season now has no champion until its final is decided
- v2.159.2
Bet approvals, this season
Sep 5, 2026Fixed- The admin bet approvals queue reads the current season across the active leagues instead of a hardcoded 2025 and six fixed slots
- v2.159.1
Seven on the books
Sep 5, 2026The site now counts its leagues the way the record does: five running, two archived.
Better- Email footers carry the same line
Fixed- Footer, welcome tour, page descriptions, the members directory and the admin page no longer say "six leagues" — True Ballers has closed and League of Champions has joined the archive, so it is seven on the record and five still running
- v2.159.0
The next class
Sep 5, 2026A college prospect spotlight on the front page: who next year's rookie picks might become.
New- The front page now shows the most productive college quarterbacks, backs, receivers and tight ends in each of the next three draft classes, with this season's line beside last season's
- Pick a class, narrow to a position, open a player for the full two-season box score, and star the ones you are watching — the watchlist stays in your browser
Better- College stats are summed nightly from Sleeper's weekly box scores and scored PPR; players already in the NFL drop off the list
- v2.158.0
Saturdays on the scoreboard
Sep 5, 2026College football joins the live scoreboard, beside the NFL.
New- A CFB board on the league dashboard: the whole week of FBS games with live clocks, scores, channels and the AP rank of every ranked side
Better- On Saturdays the board opens on college football when games are on and nothing in the NFL is
- The scoreboard chips now read NFL, CFB, MLB and NBA — the league rather than the sport
- v2.157.1
The wall fills itself
Sep 5, 2026The Wall of Shame had gone empty. It now lists every departure Sleeper knows about, and the commissioner records the rest.
Better- Commissioner: record how a departure actually happened (ghosted, unpaid, banned…) from the row itself, edit a record later, or hide an owner who left the right way
- Owners of a folded league are not listed — the league ended, they did not leave it
- Names on the wall link to the owner's page, and a departure recorded on the wall shows the same badge there and in the members directory
Fixed- Every owner who held a roster in an active league and holds none now appears on the wall as departed, read from the rosters each night — no entry needed
- v2.157.0
The archive
Sep 5, 2026Leagues that have folded keep their pages. True Ballers and League of Champions are the first two.
New- An Archive row on the front page: leagues that no longer run, the years they played and why they closed
- League of Champions — Strip3s's ten-team league from 2018 through 2021 — joins the site as an archived league
- True Ballers is archived after the 2025 season; every standing, matchup, trade and draft stays readable
Better- An archived league opens on its final season, with a note at the top of every page saying when and why it closed
- Commissioner: a history backfill that loads every season of a league straight from Sleeper before the league is deleted there
Fixed- The daily league-season refresh had been failing on every existing season since 2.148 (an ambiguous column in the upsert); it writes again
- A league whose Sleeper record holds two drafts for one season — a false start beside the real one — keeps the draft that was actually played
- v2.156.1
Astro 7 lands
Sep 5, 2026The site now builds on Astro 7, and a few small things that were wrong are right.
Better- Astro 7 with its faster build and preview server
Fixed- The skip link reaches the main content on every page, not just some
- The analysis page has a masthead like the others
- What's New only opens for a newer release, never after a rollback
- v2.156.0
The emails match the site
Sep 4, 2026Every email NLD sends is now written on the ledger.
Better- All sixteen email templates redrawn on the ledger — paper ground, the wordmark over its ink rule closed in brass, numbers set in mono
- The pages an email link lands on — unsubscribing, approving a claim — match the emails instead of the old dark theme
- v2.155.0
Draft picks count in a trade
Sep 4, 2026A pick is graded as the player it became, and a deal with an unused pick is not called at all.
New- How it aged now counts draft picks: a used pick scores as the player it turned into, named on the panel so you can check it
Fixed- A traded pick is matched by the draft slot it came from, not the team that used to own it — which found the wrong pick, or none
- A deal with a pick nobody has used yet reads "Not settled" instead of handing the win to the other side
- Points since a trade now include later seasons, which is what the panel always said it counted
- v2.154.0
The diamond on the scoreboard
Sep 4, 2026Live baseball games show who is on base and how many are out.
New- A live baseball card now draws the diamond — the bases with someone on them inked in — with the count of outs beside it
Better- Baseball scores come from the league's own feed, which knows the bases and answers from anywhere; ESPN and Sleeper stand behind it
- v2.153.0
The front page never sits still
Sep 4, 2026The photograph behind the masthead scans slowly across itself the whole time it is up.
Better- The front-page photograph scans slowly across the page and changes every ten seconds, so the lead is never the same twice
Fixed- The first photograph you land on now moves like the rest — it used to sit frozen until the set turned over
- v2.152.0
Scout the open teams
Sep 4, 2026Name the players you want and the open rosters re-rank themselves against your list.
New- Open teams can be searched by player: type a name and every roster holding them rises to the top, marked and tallied
Better- Each card says how many of your players it holds and calls them out by name; rosters holding none of them step back
- v2.151.1
The other two sports come back
Sep 3, 2026Basketball and baseball read from Sleeper too, and baseball counts innings.
Better- Baseball reads as innings — 7th, Bot — instead of quarters, and overtime reads as OT rather than Q5
Fixed- The NBA and MLB boards fall back to Sleeper the way the NFL board does, so they no longer sit on an error in production
- v2.151.0
A mark that matches
Sep 3, 2026The favicon and the link preview are drawn on the ledger like everything else.
Better- New favicon: the NLD wordmark on graphite, closed with the ink rule and a brass end, and it follows your light or dark setting
Fixed- Links to the site now show a real preview card — the old one was an SVG, which no chat app or social network will render
- v2.150.1
The front page keeps to the season
Sep 3, 2026The rookie draft section appears in draft season and not the rest of the year.
Better- The rookie draft ledger shows from a month before the first clock through a week after the last one, and stays off the front page the rest of the year
- v2.150.0
The front page has a photograph
Sep 3, 2026This season's football is the ground the front page stands on.
New- The front page opens on a full-bleed frame from this season, credited to the wire, changing every fourteen seconds
Better- The backdrop never repeats the photo on the masthead plate, and holds still under reduced motion
- v2.149.0
Photographs again
Sep 3, 2026This season's football is back on the front page, from whichever wire will talk to us.
Better- Photos carry the wire that shot them, and yesterday's set stands in while every source is down
Fixed- The front-page photography reads from CBS Sports or Pro Football Talk when ESPN refuses the server, so the plate is no longer empty
- v2.148.3
The scoreboard stays up
Sep 3, 2026NFL scores keep coming when ESPN will not answer, and the board shows the day each game is played.
Better- Scores are fetched once for everyone and refreshed every 20 seconds while a game is on; the last board stands in during an outage
- Kickoff times name the day — Thu 8:20 PM — since a week spans five of them
- NBA and MLB load only when you pick them
Fixed- The NFL scoreboard reads from Sleeper when ESPN refuses the server, so the week's slate and live scores no longer vanish
- v2.148.2
The right league for the season
Sep 3, 2026Syncs write each season from that season's Sleeper league, so this year's standings and matchups are this year's.
Fixed- Syncing a season pulls from that season's renewed Sleeper league instead of the original; a season Sleeper has not renewed yet says so rather than copying last year
- Standings rows left behind by an owner who is no longer in the league are removed when rosters sync
- The nightly sync waits for a league's renewal to be discovered before writing the new season
- v2.148.1
Seats close when they fill
Sep 3, 2026Open-seat listings retire on their own once the roster has an owner again.
Fixed- A seat listed as open in an earlier season closes as soon as the roster is owned, even when the league is already full
- v2.148.0
The Ledger
Sep 3, 2026A new face for the season: every page redrawn as a league record, with the numbers doing the talking.
New- Homepage masthead counts down to Kickoff Week and cycles current-season NFL photography
- Homepage draft ledger shows where every league's rookie draft stands
- Draft page shows Sleeper's real draft order and honest open slots
- A new-member guide that walks a season in nine steps
- The draft room follows your league's live Sleeper draft: who is on the clock, the pick timer, and how far off your next pick is
- Bylaws read as documents, with a table of contents and the amended date on record
- Cast your ballot from the governance page; the votes you have made stay marked
- Each league dashboard ends with the week around the NFL: four credited wire photos and their stories
Better- Motion throughout: mastheads enter line by line, figures settle, section rules draw on scroll
- Standings, matchups, trades, playoffs, members, governance and the wall of shame all redrawn on the ledger system
- Proposals name their author and list newest first
- Signing in and claiming your Sleeper name read like the rest of the site; a declined claim can be retried straight away
- League terms and scoring on each league page come from the season's Sleeper settings, not defaults
Fixed- NFL scores, season detection and player news load again (ESPN had been refusing our requests)
- v2.136.0
Admin tools and claiming
Apr 3, 2026The commissioner gets a control panel; claiming a team gets its own page.
New- Dedicated claim page — new /claim page replaces the modal overlay for account verification
- Commissioner approval flow — claim requests now go through commissioner email approval instead of Sleeper API polling
- Admin dashboard — commissioner control panel with claims, orphans, bets, shame, phases, and health at a glance
- Notification dismiss — X button to dismiss individual notifications plus a "Clear all" button
- Sleeper avatar — claimed users see their Sleeper avatar in the header; unclaimed see "NLD"
- New shame types — "abandoned" and "mutual" added to the Wall of Shame categories
Better- Draft board — correct column headers using draft order with a collapsible draft order section
Fixed- Trade reactions — fixed 500 error caused by using auth ID instead of NLD user ID
- Notification bell — fixed React hooks violation that crashed the header
- Active members count — now shows actual active members, not total DB users
- Duplicate season pickers removed from Wrapped, Playoffs, and Draft pages
- Mock notifications removed — no more fake toasts from LiveNotificationStream
- v2.130.0
Your dashboard, your way
Mar 31, 2026Your week in one panel, and trades judged by what happened next.
New- Your Week at a Glance: matchup, injured starters, pending bets and open ballots in one view
- Trade analyzer scores who won each trade on performance since the deal
- Share matchup results and trades as images
- Accept or decline bets and vote on ballots from your notifications
Better- Dashboard sections sit side by side on a grid
- v2.98.0
Analytics & Engagement
Mar 28, 2026Best Ball, playoff odds, side bets and trade reactions land on the league page.
New- Best Ball mode — see your optimal lineup vs what you actually scored each week
- Playoff odds — real-time probability of making the postseason for every team
- Bench report — find out who left the most fantasy points sitting on the bench
- Injury alerts — your team dashboard shows which players are Q, D, Out, or IR
- Side bets panel — view, accept, decline, and settle side bets right on the league page
- Trade reactions — react to any trade with fire, thumbs up, skull, or laugh
- Dynasty Wrapped and Roster Analysis now accessible from league navigation
- One-click email unsubscribe from any notification email
Better- Faster page loads — behind-the-scenes performance improvements
- More reliable earnings and standings calculations
- v2.96.0
Dynasty Wrapped & Community
Mar 28, 2026New- Dynasty Wrapped — year-end reports with MVP, rookie of the year, and all-owner snapshots
- Trade reactions — fire, thumbs up, skull, laugh emoji reactions on trades
- Side bets — peer-to-peer wagers on player/stat conditions
- Commissioner audit trail — logs phase transitions, bet approvals, orphan decisions
- Onboarding tour — 6-step guided walkthrough for new users
- Game day live updates — standings refresh every 60s during NFL games
Better- Season selector syncs all components on league page (leaders, health, bets)
- Season leaders show which dynasty owner rosters each player
- Skeleton loading states for governance, weekly recap, achievements
- RosterAnalysis uses real FantasyCalc dynasty values
Fixed- SQL injection in ballot voting fixed with parameterized query
- Auth bypass on sendNudge, markAsRead, submitInterest fixed
- BottomNav links to non-existent pages fixed (scores → recap, more → activity)
- Deploy health check uses docker exec instead of host curl
- v2.92.0
Season Automation & League Tools
Mar 28, 2026New- Vacation/hiatus mode with auto-expiry and return dates
- Gentleman's bets UI — accept, decline, approve workflow (Week 17 only)
- In-app notification triggers for trades, bonuses, bets, phase changes
- LeagueSafe payment links on league dashboards
- Commissioner approve/deny for orphan team interests
- 4 new email templates — welcome, ballot, phase transition, weekly results
- Ballot auto-closes when majority of teams have voted
Better- Season Leaders defaults to latest season with actual data
- Weekly bonus shows correct units (yds, rec) instead of always pts
- Payment router secured — requires authentication
- Deploy pipeline has rollback tagging + HTTP health checks
Fixed- Player stats correctly parsed from Sleeper API (root cause of all zeros)
- N+1 query eliminated in profile metrics — significantly faster
- 13 files updated from hardcoded 2025 to dynamic CURRENT_SEASON
- Error boundaries prevent infinite skeleton loading states
- v2.87.0
Player Stats & Download Cards
Mar 28, 2026New- Player stats now tracked from every NFL game — powering advanced metrics
- Download your dynasty card as a PNG — no screenshot needed
- Set your favorite NBA and MLB teams on your profile
- Season leaders — see who leads in passing, rushing, and receiving yards
- A Moment in History rotates daily with different highlights
Better- Weekly bonuses now compute from stored stats, not live API calls
Fixed- Activity feed now populated with real matchup events
- v2.78.0
Analytics, Bylaws & Polish
Mar 27, 2026New- Dynasty Health Scores — see how each team stacks up across your league
- NLD Empire Rankings — cross-league leaderboard with ROI and earnings
- Per-league bylaws — each league now has its own formatted rules page
- Online status dots show who is active right now
- Season performance charts on your dynasty profile
Better- Email preferences respected — disable notifications in settings
Fixed- Draft board no longer shows duplicate columns for traded picks
- Empire rankings now show real earnings from standings
- v2.66.0
League Lifecycle & Governance
Mar 23, 2026New- Your league now follows a full season cycle from championship to rookie draft
- Submit rule change suggestions after the season ends
- Vote on league rules with your fellow owners
- See what phase each league is in right from the home page
- Countdown to rookie draft with a link to Sleeper
- Get an email when your league crowns a new champion
- v2.55.0
Member Profiles & Settings
Mar 23, 2026New- Redesigned sign-in page with a clean, branded experience
- Settings page — set your favorite NFL team and notification preferences
- Career highlights on your profile — trades, biggest wins, career high score
- See your most owned dynasty players with headshots
- Click any owner name to visit their dynasty profile
Better- Co-owners now link to their own profiles too
- v2.46.0
Sign In & Claim Your Team
Mar 22, 2026New- Sign in with a magic link — no password needed
- Claim your Sleeper account to unlock your dynasty profile
- Verified badges show who has claimed their account
- Hover over owners in standings to see quick stats
- New leagues are automatically detected from Sleeper
Better- Your roster page now shows only your own team
- v2.31.0
Available Teams & Weekly Bonuses
Mar 22, 2026New- See all draft picks at a glance on available team cards
- League details, entry fees, and rules shown on each available team
- See who else is interested in an available team
Fixed- Weekly bonus now shows one category per week with tie splitting
- Weekly bonuses updated — now Premier League only
- v2.28.0
League Format Info
Mar 22, 2026New- See your league's format — Dynasty, PPR, Best Ball, and more
- Dynasty, PPR, Best Ball, TE Premium badges on league settings
Better- Format badges automatically update each season
- v2.25.0
Activity Feed
Mar 22, 2026New- See blowouts, nailbiters, upsets, and top scorers in your activity feed
- Filter activity by event type with player headshots
- Mark notifications as read or clear them all at once
- v2.22.0
Weekly Bonuses
Mar 22, 2026New- Weekly bonuses auto-calculated — top QB, RB, WR, TE each week
- Commissioner gets an email when bonuses are ready
Earlier
- v2.21.0Under the Hood — error tracking and system reliabilityMar 22, 2026
- v2.17.0Trade Improvements — draft pick tracking, code cleanupMar 22, 2026
- v2.15.0Orphan Teams & Email — expandable cards, interest form, ResendMar 22, 2026
- v2.11.0Profiles, Rivalries & Playoffs — member pages, matchup breakdownsMar 22, 2026
- v2.8.0Player Hover Cards & Draft Picks — dynasty values, trade calculatorMar 22, 2026
- v2.5.0Dynasty Values & Payments — FantasyCalc, payment ledger, live scoresMar 21, 2026
- v2.2.0Season Explorer — browse 2020-2025 standings, headshots, logosMar 21, 2026
- v2.0.0The Big Switch — real Sleeper data, 5,000+ matchups, daily syncMar 21, 2026
- v1.22.0NFL Draft Countdown with prospect image carouselMar 21, 2026
- v1.21.0Tech debt quick wins — shared schemas, query singletonMar 21, 2026
- v1.16.0Team Marketplace, Social Features & Live DraftMar 18, 2026
- v1.12.0Multi-Sport ScoreboardsMar 17, 2026
- v1.10.0NotificationsMar 17, 2026
- v1.5.0League DashboardMar 17, 2026
- v1.0.0GenesisMar 16, 2026