Version 2.0.0

Introducing ArenaSwap 2

More Powerful. More Sports. More to Enjoy

Introducing ArenaSwap 2. More powerful. More sports. More to enjoy.

It’s late August. The pennant races are tightening up, the NFL preseason has all the benchwarmers thinking they’re starting this year, and somewhere a soccer match is heading to penalties for absolutely no reason.

Version 2.0 is here, and we’ve been busy. We tore PowerScore apart and rebuilt it, expanded from one sport to six, added 31 leagues, gave the popup an actual filing system, taught game cards how to speak baseball and soccer, rebuilt the website around the actual product, and generally made sure that when there’s something worth watching, ArenaSwap knows about it.

Grab a seat. This one’s a long one.

More leagues, more fun!

ArenaSwap now covers 31 leagues across basketball, football, hockey, baseball, softball, and soccer. That means the NBA, WNBA, NCAA basketball tournaments, NFL, NCAA Football, UFL, NHL, NCAA Men’s Hockey, MLB, NCAA Baseball, NCAA Softball, World Baseball Classic, thirteen soccer competitions, and seven Olympic competitions. Basically: if there’s a ball, puck, bracket, or suspiciously large number of overtime periods involved, we’re probably interested.

We’ve also made league selection considerably less annoying:

  • Turn off a league and we stop checking it entirely. An NBA-only setup no longer quietly polls thirty other scoreboards behind your back
  • Turn a league back on and it remembers where you put it, rather than dumping itself at the bottom like a child who wandered away from the group
  • Drag leagues into whatever order makes sense to you. The game list, Up Next, and section headers all follow along
  • A Reset button appears only when you’ve actually strayed from the default order. We’re trusting you with the power

PowerScore got rebuilt from the ground up

PowerScore is the thing deciding which game deserves your tab, so we figured it should probably be good at that. The old system could tell you that a game was exciting. The new one has considerably stronger opinions.

  • Every signal got more room to breathe. Closeness, Late-Game, Momentum, Lead Changes, and Comeback can now contribute substantially more before the final score is capped at 100
  • We added a new adjustment: Volatility, which watches the live win-probability line. A game hovering around 50/50 can earn up to five points; a game that’s been decided for an hour can lose five. It is, appropriately, the only adjustment capable of making PowerScore go backwards
  • Games now build their score as they become interesting instead of opening at a generic “well, something is happening” score
  • Blowouts have been formally informed that the final minute does not make them close games. A 30-point lead is still a 30-point lead
  • Tied games get their own little ramp toward overtime, because a tie with OT looming is exactly the sort of thing we’d like you to notice
  • Halftime, intermission, rain delays, and other frozen states now force a hard zero. No frozen game can keep cashing in on excitement it earned before it stopped
  • Scoring chances understand context now. A red-zone opportunity in a 45–3 game is not worth the same as 4th-and-goal in a one-score game. Baseball and softball get the inverse treatment: runners on base can contribute up to ten points depending on how crowded that little diamond gets
  • Every sport now gets its own definition of “close.” One goal in hockey is not the same situation as one point in basketball, and three runs in the ninth inning deserve a very different reaction from three points in football
  • Momentum decays at sport-appropriate speeds too: 45 seconds in basketball, four minutes in soccer, and so on. A basketball run shouldn’t haunt the scoreboard forever; a rare soccer goal gets a little more staying power

And yes, the World Cup final is finally postseason. Our old playoff detector understood American leagues very well and apparently believed the rest of the sporting world was simply playing around. The World Cup, Champions League, Olympics, and World Baseball Classic were missing their postseason boosts. We now handle all three ways ESPN encodes knockout rounds, including Olympic events that have the charming habit of filing their Gold Medal Game under “regular season.”

It checks fast when something interesting is happening. Then it takes a nap.

We gave every league its own polling timer, and the timer pays attention to how good the best game is.

  • A league with a genuine thriller can check as often as every six seconds
  • Quiet leagues ease back to 25 seconds
  • Intermissions stretch that to 40 seconds
  • Two empty polls send a league into a two-to-three-minute sleep cycle
  • All 31 timers are staggered and jittered, because having thirty-one leagues simultaneously knock on ESPN’s door seemed impolite

So ArenaSwap spends its attention where the games are actually happening.

Standby Stream: because sometimes everything is boring

There are nights when every game you’re tracking turns into a 41–3 blowout, a rain delay, or an intermission simultaneously. Previously, ArenaSwap’s answer was essentially: well, good luck. Now you can pick a Standby Stream. When everything drops below your threshold, ArenaSwap parks you on your chosen fallback tab. The second something interesting wakes back up, you’re sent home.

  • Navigate away from the standby tab yourself and ArenaSwap takes the hint
  • A queued switch gets cancelled if the game becomes uninteresting while it waits
  • The first time you enable it, you get a little two-page explanation of what you’ve just unleashed
  • Standby tabs mute exactly like every other managed tab, rather than suddenly becoming the loudest thing on your computer

Your backup plan now has a backup plan.

Settings stopped being a 20-item scroll of doom

Our settings page used to be one long vertical parade of sliders, toggles, and mysterious little numbers, with Standby Stream hiding somewhere approximately three geological eras below the top. We gave it an index.

There are now six categories: Switching, Scoring, Leagues, Display, Standby Stream, and Demo Mode. Each category fits into a 320×560 popup without scrolling. Leagues gets an exemption from this rule on account of the fact that 31 leagues are still 31 leagues.

There’s also search. Type “playoff” and you’ll find Postseason Boost. Type “spam” and you’ll find Cooldown. Searches use language-specific keyword lists, so we’re not making you search for the English name of a setting while reading it in German.

A few other things got considerably clearer:

  • The sensitivity slider now tells you exactly what each level means: 37, 27, 18, 11, 6, 3, or 1 point difference before ArenaSwap changes tabs
  • Explanations moved into tooltips instead of permanently occupying valuable popup real estate
  • Betting lines are off by default, and stay off until you ask for them
  • When enabled, spreads display with the sportsbook’s own logo

The game screen finally has something new to say

The old game screen mostly took the card you had just clicked and made it larger. Team names, again. Score, again. Clock, again. Now the detail screen actually brings receipts.

  • Four charts: PowerScore over time, score trend, win probability, and a stacked signal breakdown
  • A playoff series tracker showing things like “BOS leads series 3–2,” with one dot per game
  • Team records, which have existed in our data since day one and had apparently been waiting patiently for their big break
  • A live countdown to tip-off, kickoff, puck drop, or first pitch
  • A completely separate pre-game screen instead of pretending a game that hasn’t started is somehow scoring 0/100
  • A pre-game poster that gives each crest its own tinted disc, because dark navy logos on dark navy backgrounds are technically visible but spiritually invisible
  • The two things you can decide before the game starts, its destination tab and a manual PowerScore boost, now live together
  • Venue, broadcast, and odds have actual rows now, with weather folded into the venue information and a °F/°C toggle in Display
  • Scroll past the hero and a compact matchup bar follows along with both crests, the score, and game status

The manual boost is also the only thing allowed to push a PowerScore above 100. Because sometimes you have to believe in a game.

The cards learned the rules of the sports they’re covering

We got tired of making every sport pretend it was basketball.

Baseball now has a real base diamond, occupied bases, balls/strikes/outs, and a top/bottom-of-the-inning indicator. Soccer now has ET1 and ET2, PENS for shootouts, a clock that continues past 90 minutes, and shootout scores instead of freezing forever at 120 minutes. Football now tells you where the ball actually is: “2nd & 11” gets a field position indicator, because knowing the down without knowing where the ball is is only half the story.

And stopped games finally tell you why they stopped: Halftime says Halftime, intermission says Intermission, and rain delays say Rain delay and pick up a yellow border. No more staring at a frozen clock and wondering whether everyone went to the locker room or the sky simply won.

Pre-game language is sport-specific too: tip-off, kickoff, puck drop, first pitch, and their localized equivalents. German gets “Bully.” Japanese gets プレイボール. And, because apparently we have crossed into the future, score digits flip when they change. It lasts 350 milliseconds. Nobody asked for it. Everybody notices.

A logo slot is never empty again

Every team crest is fetched live from ESPN, which means there is a brief period between “please give me the logo” and “here is the logo.” Previously, that period looked like a hole. On a 31-league onboarding screen, that could mean a lot of holes.

Now every crest gets a muted placeholder disc with the team initials from frame one. If the real logo arrives, great. If it doesn’t, the slot still looks intentional.

  • Failed logo requests are tracked per URL, so a new fetch gets another chance
  • Three places intentionally skip the initials treatment where it would just duplicate nearby text
  • NBA, NHL, NFL, and NWSL no longer mysteriously become “N” because taking the first letter of every word is not a particularly sophisticated acronym detector

Se habla deportes!

ArenaSwap now has English plus German, French, Italian, Spanish, Japanese, Korean, Simplified Chinese, Traditional Chinese, Filipino, European Portuguese, and Brazilian Portuguese. Every non-English language file contains all 546 keys. No missing translations. No surprise English sentences appearing halfway through a screen. Mostly: Filipino is still missing the Spaceballs block. We’d rather admit that than quietly let you discover it yourself.

Other important localization developments:

  • “Ludicrous Speed” became 「バカ速モード」 in Japanese and “荒唐速度” in Chinese
  • Loading-screen food changes by region: cheesesteak becomes bifana in Portugal and currywurst in Germany
  • “go birds” remains “go birds” everywhere, because some things are above translation
  • 73 loading messages, 7 empty states, and 28 contextual tips all got translated
  • Signal names were standardized across every screen, because having “Closeness” on one page and “Igualdad” on another was not helping anyone

You can take the tour again. We checked.

First launch is now three steps: how tab switching works, which leagues you want (NBA, NFL, NHL, and MLB preselected), and which teams you follow, loaded live from ESPN. There are skip and retry paths if ESPN decides it needs a moment.

The full walkthrough is eight steps and ends in confetti. The PowerScore section alone has twelve interactive sub-steps, because apparently explaining five scoring signals required its own small amusement park.

And the tour doesn’t disappear after installation. Hit the ? in the header whenever you want to run it again. There’s also Demo Mode, with 15 scripted games across 12 leagues and mock playoff series, so you can actually watch ArenaSwap make a decision without waiting around for the next six-hour baseball game to become interesting.

Your settings follow you around

Preferences now write to both synced and local storage independently. The newest value wins, and if one storage mechanism has a quota problem, the other doesn’t get dragged into the mess. Sign in to the same browser profile on another machine and your leagues, favorites, thresholds, and other preferences come along with you.

We also gave ArenaSwap a few more ways to explain itself:

  • Switch notifications now tell you the score, venue, and reason for the switch
  • Standby Stream gets its own notifications
  • Notifications are individually toggleable in Display
  • Your team’s colors produce confetti when they score
  • Toasts confirm quiet things like settings being saved

Because sometimes the most reassuring message is simply: yes, that thing you just changed actually saved.

The website stopped pretending to be the extension

The old website contained a hand-built replica of the popup: 108 lines of CSS, eyeballed by humans, updated manually. You can probably see where this is going.

The website now imports the actual shipped components. Same cards, same chrome, same charts, same product. The homepage can no longer describe a UI that stopped existing three months ago.

The PowerScore page also runs the real algorithm against live games in your browser. It doesn’t draw a fake graph to explain PowerScore anymore. It is PowerScore. And PowerScore is now an installable npm package, with the install command right there.

The rest of the website got the same treatment:

  • The hero video now uses three real games: Northern Arizona at Hawai’i, Army at Navy, and Minnesota State at Bemidji State
  • Team crests and cards come from ESPN rather than stock footage of teams the page wasn’t even naming
  • An auto-playing explainer walks through the PowerScore engine in four scenes using the actual trend line
  • Release notes have dedicated pages and an RSS feed
  • There’s now an FAQ and a designed 404
  • Privacy, licenses, credits, and terms all have actual URLs

Because apparently “the link is on the page somewhere” isn’t quite good enough for a Chrome Web Store reviewer.

We read the entire website out loud. Some sentences did not survive.

We did a copy pass over every page. This uncovered, among other things, the fact that our PowerScore page had been confidently advertising five numbers that were wrong. Four of them were just wrong. They’re now pulled directly from the actual scoring constants, so they have considerably fewer opportunities to develop independent opinions.

We also fixed a meta description that was being cut off halfway through a sentence by a rogue apostrophe, removed em dashes, gave passive sentences subjects again, replaced every use of “the hero” with “the video at the top” (because “hero” is a word for people who build websites, not people who have to read them), and removed “planned” from the docs page, because announcing a version before you ship it is how you accidentally create a prophecy.

Closing the wrong tab no longer kills ArenaSwap

We audited the tab-switching path and discovered something fun: ArenaSwap had never actually noticed when a managed tab closed. So if the tab containing the best game disappeared, ArenaSwap could simply go silent for the rest of the evening. No error, no recovery. Just vibes.

That’s fixed now.

  • Closed tabs are forgotten immediately instead of haunting the registry until restart
  • If the top game disappears, the runner-up gets the switch
  • Queued switches re-evaluate when they actually fire, so you won’t be sent to a game that ended while the switch was waiting
  • Manually navigate to a game and ArenaSwap backs off for your cooldown instead of immediately trying to wrestle control away from you
  • Turn switching off and back on and the cooldown resets properly
  • Muted-tab state survives service-worker sleep, so tabs don’t get stranded muted after ArenaSwap stops managing them
  • Background tests increased from 13 to 27, including direct coverage for the actual switch-decision path

And now, the lightning round ⚡

There is, naturally, more:

  • Tailwind CSS was not actually compiling in the extension. We found roughly 18KB of dead source and a 21,463-byte stylesheet that had apparently been doing all the work itself
  • Delayed and suspended games now score a hard zero instead of coasting forever on excitement from before the delay
  • Up Next groups games by date, sorts favorites first, caps at ten, offers “show more,” and lets you choose a one-to-fourteen-day window
  • Favorite games pin to the top of their league section, and you can favorite a team directly from its game card or pre-game poster
  • The main list separates games that already have a tab from games that don’t
  • Weather conditions now map 44 labels onto actual icons instead of printing “Partly Cloudy/Windy” at you like a weather API in distress
  • Settings still save even if you change something and immediately close the popup
  • One codebase now serves Chrome, Firefox, and Edge, with three permissions, no content scripts, and Firefox lists ArenaSwap as collecting no data at all

And that’s Version 2. Thirty-one leagues. Six sports. A rebuilt PowerScore. A new switching engine. Standby Stream. A settings system that can actually be navigated. Game screens that know the difference between a puck drop and a pitch. A website that finally tells the truth about the product.

We may have gone a little overboard. But the next time the game of the night turns into absolute cinema, your tab should already be there.

Rate us five stars if you’ve ever participated in the tarps off movement 🚫👕⚾️