NHL game data, as events

Everything that happens on the ice, the moment it happens — ready for whatever gets built next.

HockeyTrack watches the league schedule, polls every game while the puck is in play, archives every raw response, and publishes each play as an event within seconds. It sits between the NHL’s public data and any hockey project I dream up, so each new idea starts from live, structured data instead of from scratch.

1,409games this season
32teams
days to puck drop

The intermediary

One pipeline does the tedious part once — watching, fetching, storing, diffing — and everything downstream just subscribes.

NHL public API

The league’s own feed: schedule, play-by-play, boxscores, shift charts. Unofficial, keyless, and prone to change.

HockeyTrack

Serverless on AWS. Wakes for each game, polls every 5 seconds, and turns raw snapshots into a clean stream.

  • Raw archive of every response, forever
  • Every play published as an event
  • Schedule kept current daily

Projects

Each one is a subscriber, never a rewrite of the plumbing.

  • This schedule site
  • Goal alerts to a phone
  • Live scores, analytics, whatever’s next

What it does

01 Archives everything, raw

Play-by-play and boxscore snapshots land in S3 whenever they change, plus a full end-of-game sweep. Nothing is parsed away, so no future idea is missing the data it needs.

02 Publishes plays as events

Goals, shots, hits, penalties, faceoffs — each becomes a discrete event on an EventBridge bus within seconds. A new use is one rule away.

03 Runs only when hockey is on

A daily job walks the whole published season and arms a timer per game. No games, no compute; the whole thing costs a few dollars a month.


Projects so far

The first consumers of the stream. The list is meant to grow.

Live

2026–27 Season Schedule

Every game, every team, filterable by club and month, with game numbers, rest days, and back-to-backs. Refreshed every morning from the pipeline.

Open →
Live

Lightning goal alerts

An EventBridge rule matching goals scored by Tampa Bay, delivered to a phone. Twelve lines of configuration, zero pipeline changes.

Next

Whatever the stream makes easy

Live scores on this site, post-game analytics over the archive, standings, a second team’s alerts — each starts as a subscriber to events that already exist.


Built in the open

Go, Terraform, and AWS Lambda, MIT licensed. The design spec, the implementation plan, and every commit are on GitHub — fork it and point it at your own team.

github.com/DavidJDrake/hockeytrack ↗