John Jayasankar

JJ-SYS-11Labs · Live data6 min read

Gridiron: every game, every drive, one view

A live NFL and college football command center. Every game gets its own 3D field with the reported ball spot, beside the score, win probability, and odds from named sources.

  • Independent · Labs
  • 0→1 · live product
  • 2026
  • Product, design, and build

Gridiron · football command center

NFL Week 1 replay · ARI at LAC · captured real games

6  to 1live games  to one view

Captured real games from Gridiron’s NFL Week 1 replay · figures as ESPN, DraftKings, and Kalshi reported them · not betting advice

Phases1-4 · select to hold

Reading the schematic interfaceSix games live at once with Watch next naming why ARI at LAC deserves attention, ARI’s drive drawn from reported spots to 2nd and Goal at the LAC 5, ESPN win probability for LAC at 70% beside DraftKings’ closing lines and Kalshi at 73.5 cents, and the 5-yard touchdown run that follows.

What was broken

On a busy Saturday or NFL Sunday, following several games closely means switching between broadcasts, tabs, and scoreboards. A scoreboard says who leads. It does not say where the ball is, how the drive got there, or which game deserves attention next.

Product decision

Make the field the interface. Give every game its own 3D field with the reported ball spot, possession, line of scrimmage and line to gain, and let the slate, four games in focus and a single game page share one live state. Draw only what a source reported: when a spot, a line or a chance is missing, say so instead of filling it in.

Flow

  1. 01SlateEvery game at once

    Live games first, with Watch next naming why a game deserves attention.

  2. 02FieldEvery drive, spatially

    The ball moves between reported spots, never along an invented route.

  3. 03MomentKnow when it matters

    Touchdowns, turnovers and red-zone trips, announced once and corrected honestly.

What it does

  • A slate of every live NFL and college game, live first, with notable situations and a Watch next strip that names its reasons
  • Focus on one, two or four games, or a wall of 4, 9 or 16, with a Director that follows the most important live situation and says why
  • A game page with a 3D field and three cameras, drive replay, game flow, play-by-play, leaders and team stats
  • ESPN win probability, DraftKings lines, and Kalshi prices beside every game that has them, each named by its source
  • Team pages, plus watch parties that follow the host’s view and push alerts for favorite teams on the full server build
  • A replay lab of captured real games for when nothing is live, labeled on every screen, on the full server build

Reported, never guessed

  • Spots come from the provider

    The field-position label first, then the yard line, then the distance to the end zone. With none, the field says Ball spot unavailable.

  • Clocks are never counted down

    A clock shows what the provider last reported, not a local timer.

  • Chances are never calculated

    Win probability is ESPN’s model, lines are the sportsbook ESPN reports, prices are Kalshi’s, and each is named.

  • Replays say so

    Captured games are labeled on every screen, and deliberately edited test scenarios say Synthetic.

Routes, formations and tackle locations are not reported, so Gridiron never draws them. The ball sits on the center line because no live provider reports where it is across the field.

Reading the field

  • Away defends the left

    The real stadium direction is not reported, so each field says which end each team defends.

  • Blue and amber

    Blue marks the line of scrimmage and amber the line to gain. On goal to go, the goal line lights instead.

  • Shapes from the play type

    Runs sweep and passes arc, kicks fly high, incompletions go out and come back, and sacks drop back.

  • Rulebook markings

    Hash marks, numbers, the try line, goal posts and pylons follow the 2026 NFL and NCAA rulebooks.

  • Sized to the venue

    The stands are built from the real capacity where one is published, 366 grounds of them, and a venue reported as indoors is given a roof over the stands.

Odds and win probability

  • Win probability

    ESPN’s model after each reported play, and its matchup predictor before kickoff.

  • Sportsbook lines

    Spread, moneyline and total with their opening lines, and after a game, how the result compared with the closing lines.

  • Kalshi prices

    Each team’s contract to win from Kalshi’s public market data, with no account or key, drawn beside ESPN’s model in game flow.

Shown for information only, not as betting advice.

How it stays live

  • One server polls the provider for everyone and streams changes to each browser as small deltas, with a full resync when one cannot apply
  • A game you have open refreshes every 12 seconds and a game on screen every 25, inside one shared request budget
  • A spoiler delay holds scores, fields, odds and alerts on one timeline, so nothing leaks early
  • A provider failure shows as delayed or unavailable with its reason, and is never replaced with other data

Built to be watched

  • One canvas

    A single WebGL canvas draws every field, and renders only when something changes.

  • 2D when it has to

    Reduced effects, a 2D mode of SVG fields with no WebGL at all, and reduced motion respected.

  • Accessible

    Every field has a text summary, and an axe audit of WCAG 2.1 A and AA runs in the end-to-end suite.

  • Tested

    669 unit and integration tests and 144 end-to-end journeys in Chrome, 8 of them repeated in Firefox and WebKit, at version 0.6.0, run against captured real games.

What it does not claim

  • Not official real-time tracking: the provider has its own delay, and a clock shows what was last reported
  • College play-by-play is often incomplete; those games say Score-only coverage and carry no win probability
  • The sportsbook reports an opening line and a latest one and nothing between, so a past play shows opening and closing lines rather than letting a closing line read as the line at that moment
  • Odds and prices are information, not betting advice

Why I built it

  • Following several games at once meant switching between broadcasts, tabs, and scoreboards
  • I wanted to understand the whole slate in seconds, see which games deserve attention, and follow drives spatially
  • It had to be useful while watching, at a desk, or keeping up without a broadcast at all

How it was built

  • I wrote the brief: the problem, the experience, the visual system, and the rule that nothing on screen is invented
  • Implemented and iterated with Claude Code, release by release from 0.1 to 0.6.0; product direction and quality judgment are mine
  • React 19, Vite and React Three Fiber on the client; a Node server with a shared polling engine and server-sent events
  • Deployed on Vercel as a bounded version that polls instead of streaming, and leaves out the replay lab, watch parties and push alerts, which need the persistent server

Role & tags

Product, design, and build. Wrote the brief, set the rule that nothing on screen is invented, and shipped the live product.

  • Live data
  • 3D fields
  • Reported spots only
  • Named sources

Impact

A live product: a 3D field for every game, Focus, the wall, and the Director, a game page with drive replay and game flow, ESPN win probability, DraftKings lines, and Kalshi prices, and team pages. The full server build adds the replay lab, watch parties, and push alerts, which the Vercel deployment leaves out. Shipped as a working product, not a pitch deck.

Try the live product

Gridiron runs live on Vercel, below. When no game is on it says so, with the next kickoffs and recent finals. The replay lab is in the full server build and not in this deployment, so what you see is whatever the provider is reporting now.

Gridiron, as its case card shows it
A still of Gridiron. The live product opens in its own tab, and appears here instead of this picture when it allows this page to frame it.

Open Gridiron (opens in a new tab)

1-9 beats · j / k · ← → adjacent · y link · b brief