Weekly Fixes & Polish (Aug 11-18)
35 bug fixes and style improvements across other, rankings, schefter report, homepage, and more.
The Full Story
This week's 35 bug fixes and polish improvements touched the following areas of the site:
Other β Both sites got lighter on their feet. Every page request was quietly hauling around twenty years of archived league feeds β every roster, every box score, every player list back to 2004 β loaded fresh whether you were looking at last Sunday or the Bush administration. It was 165 megabytes of luggage, and the worst part is we were carrying two copies of it: the pages that show old seasons already have their own, so the second set was along for the ride and nothing more. The site had grown so heavy it had actually stopped being able to deploy. Now only the last three seasons ride along and the archives are pulled up when something actually asks for them, which cut the whole thing roughly in half. Nothing you can see has changed β every season is still there, still complete β it just gets there faster. Schefter stopped chewing holes in his own tips. To keep him from naming a team he's not allowed to name, every tip gets scrubbed before he reads it β any franchise name in the text is swapped out for "[a team]." Trouble is, the list of names he watches for includes short ones that are also just... words. "Dead Cap Walking" goes by DEAD in the standings and spent six seasons as Heavy Chevy, so a tip reading "deal is dead, but he's a heavy favorite to be cut" reached him as "deal is [a team], but he's a [a team] favorite." Worse than gibberish: he's under orders to make sure the substance of a tip survives the scrub, so he'd go hunting for the team that wasn't there and write one into the story. Retired names and standings abbreviations now go through untouched when they're plainly being used as words β lowercase, in the middle of a sentence. Nicknames anybody still uses are a different matter and stay locked down, so "put out feelers" is still going to come back fuzzed. Titsburgh Feelers will live. Roger's links in the group chat work again. When he ended a sentence with a link β "Review your plan at theleague.us/rosters." β GroupMe grabbed the period along with the address and sent everyone who tapped it to a page that doesn't exist. The roster-cutdown reminder is the one owners actually noticed, since it's the message telling seven teams to go log in and fix their roster. Two fixes, because one wasn't enough: every bot message now gets the trailing period trimmed off the link on the way out, and the site itself now catches a link that arrives with a period stuck to it and quietly sends you to the right page instead of a dead end. That second half matters, because the messages already sitting in the chat can't be edited β and it works for links you paste into a text message or an email too. The Mariachi Ninjas get a proper dark-mode crest, and both leagues share it. The site can trace a thin ring around a dark logo to keep it readable at night, which is a fine safety net and never as good as artwork drawn for the job β so the green ring got drawn into the logo itself instead of being painted on at the last second by a stylesheet. The old dark file was the ordinary crest with a white line around it and is gone. Both leagues wear the identical new one, so the Ninjas finally look the same on either side after dark. Balls Deep gets a dark-mode crest of its own. The witch was always readable enough at night to skip the thin white outline the site traces around the darker logos, so this one didn't have to change β it did anyway. The outline is now drawn by hand and follows the witch and the pumpkin themselves rather than looping around them, which keeps the hat and the black dress from bleeding into the card behind them. She's drawn bigger too, filling the space instead of sitting inside a puck, so she still reads at the size these things actually appear on a phone. Same witch, better edges. Five more AFL crests traded the white dark-mode outline for a color of their own. The thin ring that keeps a dark logo readable on a dark card is white by default, which is fine for a default and a little rude to a team that owns a color β Midwestside's gold ring has looked right since the day it shipped, where a white one around a gold-and-black crest read like packaging. Computer Jocks now get their green, The Show a dusty rose lifted off the photo panels in its logo, and No Soup For You that orange-red. Jewpacabra is the odd one out: the pixel check had said its crest didn't need a ring at all, because it counts how much of a logo is bright and Jewpacabra is bright right through the middle. What it doesn't count is the rim, which is dark, which is why that crest's edge quietly dissolved into the card. It gets a green ring now. The measurement is a filter, not a verdict β and that goes both ways. Suh girls, one cup is the one that isn't about legibility at all: that crest reads fine on a dark card and always did. It gets a hot pink hairline because hot pink is the team's, and a ring can be a signature as easily as a crutch. A Bruin Pegs Me gets dark artwork of its own. The site traces a thin white ring around any crest a pixel check says is too dark to read at night, and the bruin scored low enough to qualify β but a ring generated at the last second by a stylesheet follows the logo's outline wherever it happens to go, and on this one it read like a sticker edge somebody stuck around the outside. So the crest got drawn for the job instead: same UCLA blue and gold, with the ring built into the artwork where it belongs, following the circle properly. The automatic version is switched off for this team, because it no longer has anything to fix. Fullybaked, the Avenging Amish and Da Dangsters get their dark-mode logos. All three crests were drawn on a white puck, which looked fine all day and then sat on your dark screen at night like somebody left the lights on in one window. Same artwork, navy backdrop, swapped automatically the moment the site goes dark β so the icons now blend into the card instead of punching a hole in it. Vitside Mafia got this treatment a while back. Da Dangsters had been getting by on the thin white outline, and drops it here β which is exactly what that outline was always meant to do the moment real dark artwork showed up for a team. Everyone else who needs it is still wearing theirs. The Muck Juggling Micks and the Titsburgh Feelers get dark-mode crests. Neither had one, and neither was wearing the thin outline the site paints on the logos that need it β the brightness check had cleared them both, though the Micks only barely, scraping over the line with nearly half the logo counted as too dark to read. The check asks how much of a logo is bright, never where the bright part is, and on both of these the outer ring is the one black thing in the picture. So the crests read fine and their edges quietly dissolved, leaving a leprechaun and a Feeler floating loose on the card with no rim around them. Both now have artwork drawn for the dark, ring included and drawn light instead of black. The Feeler is redrawn bigger while she's at it, filling the circle now that the wordmark under her is gone β at the size these things actually appear on a phone, a name nobody could read was costing her the room to be recognized. Swiftie 4 Life gets the thin ring in white on the same pass. Hers is a smaller thing than the other two: that crest's edge is a pale rose that never disappeared on you, so the ring isn't rescuing anything, just tightening a soft edge into a definite one. Every AFL team logo on the site was being fetched from a second address instead of the page you were already on. It worked, but it meant your phone had to go open a whole separate connection just to draw a handful of 100-pixel crests β and on a cell signal they'd still be arriving well after everything else had finished. Nobody would have called it a bug; it just felt like the logos were slow. They're now served from the same place as the rest of the page, which also means they can't go missing if that other address ever moves. Roughly a dozen of them on the homepage, two dozen on the standings page. The AFL Franchises page traded its generic trophy/crown/shield/medal emoji for the league's actual championship badge art β the same medallions and shields from each team's trophy wall, stripped of their win-year so they read as lifetime totals. Premier League and D-League get their own small tier logos instead of banners that looked too much like the AFL championship medallion to tell apart at a glance. The Show's franchise page finally let go of the grudge. The 2025 last-place punishment renamed them Cock Gobbler for a year, and even after the name reverted, the old nicknames lingered on the page as a public "aka Gobbler, Gobblers, Cock Gobbler" line β and showed up in assets-page search besides. The punitive year still lives on in the franchise's history archive where it belongs; the live page just doesn't advertise it anymore. AFL rivalry records were counting 173 meetings that never happened. MFL's archives for 2012-2015 carried matchups with the right scores but invented opponents, and they were being merged in alongside the real schedule β so a series could show a win nobody won. The league's hottest rivalry, Smokane FC vs Suh girls, was reading 18-17 when it is actually dead level at 17-17. The AFL franchise page claimed "head-to-head covers 462 of 389 career games", which is not a thing a fraction can do. It was comparing every meeting including the playoffs against a career record that counts only the regular season. It now reads 372 of 389 for Smokane FC, and the 17-game gap is exactly 2003 β the season the league played on Yahoo, which has no scores in MFL at all. The AFL trophy wall was rewriting history every time a team got renamed. Thundering Herd finished last in 2026 and took the punishment name, A Bruin Pegs Me β and the awards ledger promptly went back through the archive and reassigned the 2008, 2016, 2018 and 2023 titles to A Bruin Pegs Me too, including the 2023 D-League championship. The Herd won those. Nobody named A Bruin Pegs Me has ever won anything, because that team is three weeks old. The ledger was stamping each award with whatever the franchise is called today instead of what it was called when it won, which in a league that renames its last-place finisher every single season is an annual guarantee rather than a fluke. Awards now record the name the winner actually wore that year. Same pass caught Smokane, who were plain "Smokane" until 2009 and had four division titles from that era filed under the later "Smokane FC". Your phone was occasionally serving you a page from a previous visit and passing it off as live. The site keeps an offline copy of pages so there's something to show when you're in a dead zone β but it was reaching for that copy any time a request didn't complete cleanly, including the extremely normal case of tapping a second link before the first one finished loading. The saved copy could be days old and still point at a stylesheet that no longer exists, which is how a page could come up looking half-built and then quietly right itself a few taps later. Now the offline copy is only used when you're actually offline, it's ignored once it's more than twelve hours old, and images and logos refresh themselves in the background instead of being kept forever.
Rankings β Schefter's headshot on The Pecking Order stopped floating out in the margin. The little round photo beside the "The Pecking Order" heading was parked in the gutter to the left of the page on purpose β the idea being that the heading text would then line up dead even with the headline, the breadcrumbs and the ranking cards below it. Nice idea, wrong measurement: the page's column has about 19 pixels of room on that side and the photo needed 50, so on any screen wide enough to show it at all, it sat outside the layout entirely β a disembodied head hovering off in the left margin with nothing above or below it. It's back in the heading now, starting on the same left edge as everything else and reading like a byline. It also shows up on phones, which it never did before: the old version hid itself on anything under 1300 pixels wide, because below that there was no margin left to hide in.
Schefter Report β Schefter learned that a team keeps its old names. He'd been told to name one team per rumor and no more, and he was following it β right up until a tipster typed a name the team doesn't wear anymore. The list he checks against only had everybody's current names on it, so last year's names walked straight through, which is how a rumor about Balls Deep ended up dragging a former Cock Gobbler front office into it. Every name every franchise has ever answered to is on the list now, nicknames included. The callback itself survives, because it's funny: when a team's rename is still fresh, Schefter can nod at the old name β but he has to say the new one in the same breath, and he stops bringing it up entirely three weeks into the season. Dead Cap Walking will be hearing about Heavy Chevy until then. Every link Roger and Schefter drop in the group chat said the league's name twice. theleague.us/theleague/calendar. afl-fantasy.com/afl-fantasy/news. They worked β a redirect quietly cleaned it up on the way through β but you were reading the ugly version, and every tap paid for a round trip it didn't need. The folder name only exists so both leagues can share one site; on your own league's domain it's noise. Roger's countdowns, Schefter's Trade Builder invites, the Cut Watch and Gauntlet links, and the cutdown-deadline nags now all point straight at the clean address. The links also got pinned to the same address you actually browse, so they should stop occasionally opening you logged out. At 1:00 in the morning, Roger woke up the AFL to announce the draft was one week away. Two things wrong with that sentence. The draft is not one week away β the AL board goes live Saturday August 29 and the NL email draft opens the next morning, which is sixteen days out, and which is what the calendar has said the whole time. Roger was reading off a hardcoded August 20 that traces back to an old "annual draft window" line and matches nothing the league actually does. He now reads the same Labor Day math the calendar does, so there is exactly one draft date in the building. And the 1am part: every other thing Schefter sends respects overnight quiet hours. Roger's reminders somehow never got the memo, so whenever a countdown came due β 1am, 3am, whenever the scanner happened to tick β your phone found out. He now holds until 7am like everyone else. The two bogus countdown posts have been pulled from the feed. The GroupMe messages, unfortunately, are forever. While we were in there: the rulebook itself was the original source of the bad date. "Annual draft window: August 20 β August 25" has been sitting in the constitution, the rules page, and Roger's reference copy for years, describing a window the league has never actually drafted in. Per the Commissioner, the draft is always the weekend BEFORE Labor Day weekend β AL on the Saturday, NL on the Sunday morning after. All three now say that, in those words, so nothing downstream has to guess a date again. And one more, caught while reviewing the fix: Roger had the trade deadline wrong too, by exactly a week. He was set to start the countdown for November 11th. The deadline is November 18th β the Wednesday between Weeks 10 and 11, which is what the calendar has always shown. Same root cause, same fix.
Homepage β The standings cards on both homepages swapped team names for team logos. On a phone the team column was eating half the row to spell out names you already know by their crest, which squeezed the numbers you actually came for. Now it's the logo, and the records and points get room to breathe. Dark mode got the harder half of this problem: a good chunk of the league wears a black or near-black logo, and once the crest is the only thing naming the row, a black logo on a black card names nothing. Every crest was measured against the dark card, and the ones that failed now get a thin white outline traced around the logo itself β so Badd Boys and Da Dangsters and the rest stay readable at night without anybody having to redraw them. Teams that already have a proper dark-mode logo still just switch to it. Screen readers still read the team name, and if a logo ever fails to load the name comes back in its place. Your team card on the AFL homepage stopped spelling out your tier and conference and started showing them. Where the card used to print the word "Premier" under a stock trophy, it now leads with the actual Premier League crest β or the D-League one, if that's where the season left you β and the conference tile leads with the AL or NL mark instead of the letters and a generic star. Same badges the standings page has been using all along. While fitting them, it turned out the dark-mode versions of all four badges have been drawing about a tenth smaller than their light counterparts everywhere they appear β standings, the franchise cards, the playoff header β because of extra empty space baked into the artwork files. That's corrected, so the crests sit at their proper weight across the site. One knock-on: the countdown banners use the dark badge on their navy panel no matter which mode you're in, so their crest is a touch larger now in daylight too. The playoff standings card on the AFL homepage stopped labeling its division leaders with the word "Div". The top two seeds in your conference are there because they won their division, and the card marked that with a tiny grey pill reading DIV β accurate, and telling you nothing you couldn't already work out from the two rows sitting at the top. It's now the actual division shield: the same AL North, AL South, NL East and NL West artwork hanging on those teams' trophy walls, shrunk down to ride beside the crest. The win-year stamp is scrubbed off it, because this one isn't a trophy β it's a standing, and it can change on Sunday. Both leagues' badges were already drawn to read on a white card and a navy one alike, so nothing had to be redrawn for dark mode.
Playoffs β And then there was one. 2004 was the last season we couldn't rebuild β six divisions feeding an eight-team bracket meant the playoff field wasn't simply the top four in each conference, and without knowing who actually qualified there were three different ways to read that season's games. The fix came from an unexpected direction: the NIT. Sixteen teams played in it, the league has twenty-four, and nobody plays in both β so identifying the NIT field identified the championship field by subtraction. The AFL Losers Bracket then accounted for six of those eight, leaving exactly two teams standing, and MFL's own records name the winner: Bukkake Warriors 133.6, Your Team Sucks 106.44. Every game of 2004 is now on the page, from that title game down to the wonderfully named "2nd and 3rd Round NIT Losers." That's twenty seasons rebuilt. The only one left blank is 2003, which was played on Yahoo and never existed in MFL at all. 2011 finally has a playoff bracket, and it took some doing. Every other season we rebuilt by assuming the playoff field was the top four in each conference β which is how the AFL seeds it, except in 2011, when six divisions fed an eight-team bracket and two teams from outside the top eight got in on division titles. Feed the wrong eight teams into a bracket and it falls apart immediately, which is exactly what happened. So instead of guessing the qualification rule, the site now works backward from the shape: find the four week-14 games whose winners play each other in week 15, whose winners meet in week 16. Only one arrangement of that season's games fits, and it turned out to be Delirium Tremens over Drunk Indians 154.94 to 147.95. All ten of 2011's brackets are now on the page, from the title game down to NIT Consolation 2L, and every one was checked against the league's own bracket pages. 2003 stays blank forever β that was the Yahoo year, and MFL never had the games. Eighteen years of AFL playoffs came back from the dead. Pick any season before 2024 and the brackets page said "Bracket data not available" β for the championship, for the NIT, for all of it. Turns out the games were never missing. MFL's bracket export only ever handed us seed numbers for those years, but the schedule had every playoff week sitting right there, fully scored, the whole time. The page now walks those weeks back into a bracket, so 2005 through 2023 finally show real matchups with real teams and real point totals: Cougs over Smokane, Chatmaster over the Limp Ditkas, No Frills over More Cowbell. One season stays blank: 2003, the year the league played on Yahoo, so MFL never had the games at all. The consolation brackets are back too, which is the half of the postseason that actually decided things. The AFL Losers Bracket, the 3rd and 5th and 7th place games, and that magnificent tower of NIT losers brackets that handed out draft picks β all of it was blank for every season before 2024, and all of it is now filled in from the schedule. Worth knowing while you browse: MFL's own results page lies about finishing order for these years. The league wrote custom titles into its brackets, MFL read those titles as placements, and so it lists Da Dangsters second in 2005 when they actually finished third β they won the Losers Bracket. Second place was Smokane, who lost the title game to the Cougs. The brackets now on the page are built from games, not titles, so they show what actually happened. The NIT tab was empty for fifteen seasons, and the reason is deeply stupid. The page decided which brackets were the championship and which were the NIT by their ID number β brackets 1 through 5 were the big dance, 6 through 9 were the NIT. That's true from 2018 on. It is not true for 2005 (NIT is bracket 3), or 2006 (bracket 4), or anything from 2007 to 2017 (bracket 5). So for fifteen years the NIT was quietly filed under Championship while the NIT tab sat there with nothing in it. The page now goes by the bracket's actual name, which has said "NIT" on it since 2003. The NIT Champion payout shows up for those seasons too, and the AFL Cup β an in-season thing from the 2012-2016 era that MFL never exported a single game for β stopped padding the page with seven empty cards. The AFL playoff bracket was seeding old seasons with today's map. Pull up 2005 and the page sorted everyone into the four divisions the league runs now β except 2005 had six, three per conference, with a Central and a Pacific that haven't existed in over a decade. Twelve conference races between 2003 and 2016 came out seeded differently on the playoffs page than on the standings page for that very same season, which is a neat trick for a site to pull on itself. The playoffs page now reads each season's real structure, the same way standings already did. The AFL had been quietly wearing TheLeague's green. The word "Championship" over each playoff bracket was green. The OFFICIAL badge on the draft order page was a green pill. The checkmark next to the AFL in the league switcher β on every page β was green. So were the read-more links on What's New, the tier badge in the asset library, Roger's reply rail on the homepage feed, and the accent on the homepage's What's New banner. None of it was a mistake anyone would file a report about; it's just that green belongs to the other league, and the two sites share enough plumbing that a color wanders across the border without anyone noticing. Most of these weren't even on AFL pages β they live in parts shared by both leagues that nobody had ever taught to tell the leagues apart. The bracket labels now read in the trophy gold the championship badges already use, and everything else is AFL red. The gold had to be picked twice, once per mode: the amber that reads on a white card turns to mud on a navy one, so at night it switches to the metallic gold off the award art. TheLeague looks exactly as it did. The AFL playoffs page had a shadow inside a shadow. Every bracket on it β the championship, the AL and NL semis, the third-place game, the whole tower of placement games below them β sits inside one big card, and each one was also casting its own drop shadow onto that card. That would be fine if a bracket were a card, but it isn't: it's a stack of matchups with no surface and no rounded corners of its own, so the shadow had nothing to hug and drew a hard rectangle around each bracket instead. In daylight it was faint enough to pass for a deliberate divider. At night it was a row of dark boxes ruled across a dark card, square corners and all, sitting inside the card's own shadow β which is where the doubled-up look came from. The brackets now let the card do the lifting, which is what the card is for. TheLeague's playoffs page never had this and didn't need touching, so the two finally match again.
Standings β Settled a tiebreaker argument nobody knew we were having. Both rulebooks list 'Most Points Allowed' near the bottom of the standings tiebreakers β the idea being that if you're dead even with someone and you had to survive a tougher schedule of beatings, that should work in your favor. The code read it backwards and quietly rewarded the team that gave up FEWER points. Now a team that allowed more points wins that step, which means both the better spot in the standings and the earlier draft pick. Fair warning: this has never actually decided anything. In 76 seasons of TheLeague divisions and 106 of the AFL's, no tie has ever made it that far down the list. It's fixed for the day one finally does.
Rosters β Managing a player in dark mode was a flashbang. Tap the three dots next to anyone on your AFL roster and the action menu came up as a stark white card β and worse, the player's name came up white ON that white card, so the one thing you needed to read was the one thing you couldn't. The card, the four action rows, the confirmation copy and the success and error banners now all wear the same navy the rest of the site does, with the AFL red showing up on hover where it belongs. Light mode looks exactly like it did yesterday.
Navigation & Routing β In dark mode, the Premier League link in the sidebar menu was a crest you couldn't see. The badge is navy, the dark menu is navy, and the two met in the middle β leaving a label with a smudge where its logo should be. The rest of the site has had a dark version of that crest for a while, ringed with a halo so it reads against a dark background; the menu was the one place still loading the light-mode file off an old external address. It now uses the same artwork everything else does, D-League included, and it's served from our own site rather than fetched from elsewhere. Light mode is unchanged, except the crest no longer gets squashed into a square.
Free Agents β Ashton Dulin went to Malone University, a school so small ESPN doesn't keep a logo for it β and instead of shrugging, the Free Agents table rendered a broken-image icon and the school's full name, inflating his row to twice the height of everyone else's. Small-school players now get a tidy dash in the college column (the name's still there on hover). Bonus find while we were in there: the Ragin' Cajuns' logo had been pointing at Louisiana Christian University β a school with no logo either β since forever, so Louisiana products like Elijah Mitchell finally wear the actual fleur-de-lis.
Message