The Lineup Is Get the app
← Blog

Rebuilding my sports alerts to read like a friend texting you

By Vivek Tanna · Published November 10, 2026

One evening in September my phone buzzed three times in ten minutes. Each banner said a game was starting soon. None of them was wrong, and together they were exactly what I built The Lineup Is to stop. The whole point of the app is that it watches every game so you don't have to. If it can't tell you about three baseball games without three interruptions, it's another feed to manage.

That night was the clearest version of a problem I'd been circling for months. The alerts were accurate. They just didn't feel like anyone was thinking about the person on the other end.

What felt wrong

A friend who knows sports doesn't text you a box score. They text you something like "Celtics–Knicks is going down to the wire, put it on." My alerts did the opposite. The titles were scoreboard lines: two team abbreviations, the score, the word CLOSE and the period. You had to decode them to work out whether you cared.

The timing was off in a few small ways that added up:

  • Three games starting near each other meant three separate pushes, a few minutes apart.
  • The morning digest once called an 8 AM game "tonight's best game".
  • The same digest could announce a game that had already finished as if it were live.
  • A close-game alert could fire on a tie at the start of the fourth quarter, long before the part of the game anyone switches over for, and then stay quiet for the actual finish.

And a game you were already following on your Live Activity could still send you a banner, so the same moment showed up twice.

Deciding for the person, not the game

When I dug into the burst problem, the cause wasn't a bad setting. The system decided what to send one game at a time. Each game that changed made its own decision about who to tell, and nothing could see that one phone was about to get three banners at once. My daily limit couldn't help either, because every game checked it at the same moment and every one passed.

So I turned it around. Changes now wait a moment, get gathered up, and then get sorted per person before anything goes out. If three of your games start together, you get one message. The same is true for live moments that land close together.

The pre-game alert needed a second fix. Baseball staggers first pitches by a few minutes, so games that start near each other almost never start at the same minute. The old version sent each one the moment it became due. Now a game that's due pulls the rest of its slate forward into the same message, and the message leads with the game that starts first, so the time it prints is the time it means. When I replayed that evening's full slate through the new version, what would have been five banners became one:

Mets vs Yankees, 7:05 PM on MLB.TV, plus Astros vs Rays, Orioles vs Blue Jays and 2 more.

That reads like a friend checking the schedule for you.

Saying why this game, now

Next I rewrote every alert into three parts, with one job each:

  • The title is the reason. "Celtics–Knicks is going down to the wire." "This one is headed to overtime." When an underdog leads, the title names the underdog and says they're in front of the favorite.
  • The line under it is the facts. The score, the clock with its period, and the channel. A clock never shows up without its period, because "2:00 left" means nothing on its own.
  • The body is one line about the game. If there's nothing fresh to say, it falls back to something plain, like "Worth turning on for the finish," and never makes up a stat.

The rule I held the copy to is the one I'd hold a friend to. Every number has to come from the game itself and be clear to a fan, and the title has to fit on a lock screen. I check every alert type against those rules for every sport before it ships.

The close-game alert changed what it waits for, too. It now means one score in the last minutes, when the result is still in doubt. Overtime always counts. The full rules for each league are on the page that covers what each alert covers, so I won't repeat them here.

Fewer, on purpose

The most important change is that there are fewer alerts. A friend who texts you about every game stops being useful by Wednesday.

Every alert now draws from the same daily number, the morning and evening heads-ups included. You pick how many you want. Minimal sends up to two a day about your teams. With Pro, Balanced sends up to five and Everything up to ten. Settings shows a plain estimate of what your choices mean on a busy night, so you aren't guessing.

A few other things got quieter:

  • Finals are opt-in. A final score can't change what you watch next, so both kinds of final alert start off. Your teams' final scores, if you turn them on, arrive silently. The other kind is "games you missed that turned into classics," which says the game is worth the replay and never says the score.
  • The evening heads-up stands in for the pre-game. If it already named a game, that game doesn't get a second "starting soon."
  • The Live Activity owns the moment. If a game is already on your lock screen, the Live Activity itself lights up when it gets good, instead of a banner repeating it. Final scores are skipped if your Live Activity already showed them.
  • One game, one card. Alerts about the same game stack and update in place rather than piling up in Notification Center.

Respecting your night

Quiet hours keep the phone silent overnight. Alerts that can wait are held, and an overnight final waits for the morning. For your own teams you can let alerts through anyway. A separate switch decides whether a Live Activity can start on its own during quiet hours.

If you're watching later, Hide Scores keeps the result out of every alert. The why stays, and the score and the winner drop out. That's harder than it sounds. "A comeback is on" tells you someone fell well behind, so with scores hidden the alert falls back to "This one just got interesting."

Live alerts also give you a way to answer back. You can mute the game, or tell the app "less like this." Over time the app learns from the alerts you open and the ones you pass on. That only changes which games notify you, never what's Worth Watching, and it fades in a few weeks. You can see it and reset it in Settings.

What it feels like now

On a normal night my phone is quiet until something is worth my attention, and when it buzzes I know why before I unlock it. A slate of afternoon baseball is one message. A tight finish is one line that says the game is going down to the wire, with the score and the clock under it. If the game is already on my lock screen, there's no banner at all, just the Live Activity waking up.

The free plan gets this for up to three favourite teams: starting, close, overtime and final, plus a daily digest and an evening heads-up with tonight's best games. Pro adds alerts for every game above your bar, whoever is playing.

I'm still tuning it. The test I use is simple. If a friend sent me this text, would I be glad they did?

The Lineup Is is an iPhone app that ranks every game by whether it's worth watching and tells you when to turn one on.


Get The Lineup Is on iOS — free — or see tonight's best games ranked right now. More from the blog.

Best games tonight

  • All sports
  • Football
  • Basketball
  • Baseball
  • Hockey
  • Soccer
  • Tennis
  • Golf
  • Motorsports

Top leagues

  • NFL
  • College Football
  • NBA
  • WNBA
  • College Basketball
  • MLB
  • NHL
  • Premier League
  • La Liga
  • MLS
  • Champions League
  • ATP
  • WTA
  • PGA Tour
  • Formula 1
  • NASCAR

How we compare

  • All comparisons
  • vs ESPN
  • vs Apple Sports
  • vs theScore
  • vs Sofascore
  • vs Fixtured
  • vs FotMob
  • vs SportsRec
  • vs Nailbiter
  • vs RateGame
  • Thuuz alternative

Guides

  • Close-game alerts
  • Spoiler-free sports
  • Scores on the lock screen

Learn

  • How the score works
  • About
  • Blog
  • Press
The Lineup Is
Best games tonight · How it works · About · Feed · support@thelineup.is · Privacy · Terms and Conditions