👉 https://dkranzmat.github.io/shotmat/
ShotMat is an interactive hockey analytics tool that plots shot
events on a full NHL-regulation rink.
It uses React, TypeScript, Tailwind CSS, and SVG to
create a fast, clean, and fully static tool that works for youth teams,
NHL teams, or custom rosters.
- Precise x/y coordinate plotting
- SVG-based rink for crisp rendering
- Color-coded shot results:
- 🟦 Shot\
- 🟨 Miss\
- 🟥 Goal\
- ⬛ Blocked
- Filter by team, period, shot result
- Home/Away auto-detected from CSV
- Clean 3-column filter UI
- Select a player to isolate only their shots
- Auto-matching via
playerNumber - Dynamic header: "Tracking shots for #67"
- Supports live search + fuzzy search (MiniSearch ready)
- Simple player model with name + jersey number
- Sabres Mode (navy + gold)
- Ice Mode (light/neutral)
- Load structured hockey shot CSVs
- Auto-parse periods, teams, results, coordinates
- Optional fields:
playerNumber,xg,shot_type,handed
- Vite-powered development
- Zero backend
- GitHub Action automatically rebuilds & deploys to Pages
- React + TypeScript
- Vite
- Tailwind CSS
- SVG Rink Rendering
- GitHub Pages (static hosting)
- GitHub Actions (auto deploy)
- Optional search powered by MiniSearch
git clone https://github.com/DKranzMAT/shotmat.git
cd shotmat
npm install
npm run dev
npm run buildDeployment happens automatically when you push to main.
David Kranz
Front-End Developer • UI Engineer
Portfolio: https://davidkranzwordpress.com
GitHub: https://github.com/DKranzMAT
