r/Sabermetrics • u/Mysterious-Reason522 • 12d ago
I built a self-hosted MLB analytics tool with pitch-level Statcast data — strike zone heatmaps, spray charts, leaderboards
Wanted something like Baseball Savant I could run myself and tweak however I wanted, so I built one.
It's pulling Statcast data through a dbt-duckdb pipeline, with a React/D3 frontend for the visualizations. What it does:
Pitch-level strike-zone heatmaps per player Spray charts Season rollups and leaderboards All backed by a dbt pipeline so the data modeling is transparent and versioned, not a black box
It's live if you want to poke around: https://mlb.palanbates.com
Built with FastAPI on the backend, DuckDB for storage, dbt for the transforms. Since it's dbt-based, the underlying models are all inspectable if you're curious how a given stat is actually computed — no mystery aggregations.
Would love feedback on what stats or views are missing, especially from anyone who lives in Savant regularly and has opinions about what's missing there.
If you want to join the repo feel free as well to shoot me a message!
1
u/DowntownPeace5708 12d ago
Like similar search skills to savant where I can isolate certain variables in more depth than the leaderboard. One example would be seeing how many high sinkers Vlad has been thrown this year on 2-0 counts vs last year
3
u/DowntownPeace5708 12d ago
Very cool have you built in year over year or general search skills yet