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.
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.
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.
Lightning goal alerts
An EventBridge rule matching goals scored by Tampa Bay, delivered to a phone. Twelve lines of configuration, zero pipeline changes.
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.