I wanted to share a Streamlit app I’ve been building over the past year called League History.
It’s a fantasy football analytics platform that ingests league data and turns it into a long-term historical database with advanced metrics and records.
The goal is to make fantasy leagues feel like real sports leagues with deep statistical history.
App:
What it does
League History imports data from fantasy platforms and builds a full historical dataset including:
Matchups and standings across seasons
Player-level data
Draft results
Transactions
Playoff history
From that data it generates:
Career records
Historical leaderboards
Season comparisons
Playoff probability modeling
Median-win and advanced league formats
Optimal lineup analysis
Leagues can have 10–20+ years of history, and the app supports hundreds of league seasons.
Tech Stack
The app is built entirely in Streamlit:
Streamlit frontend
MotherDuck/DuckDB backend
GitHub Actions ETL pipelines
~1900–2025 NFL historical player stats
Hundreds of league-seasons
Why Streamlit
Streamlit made it possible to build a large interactive analytics product quickly.
The entire UI navigation, tables, visualizations, and workflows is Streamlit-based.
It’s essentially a full analytics product rather than a dashboard.
Interesting challenges
Some of the technical challenges included:
Scaling read-heavy workloads
Caching league queries
Handling leagues with very different scoring systems
Normalizing data across fantasy platforms
Managing large tables efficiently
Supporting concurrent users on Streamlit Cloud
Feedback welcome
I’d especially love feedback on:
UI organization
Performance
Navigation patterns
Scaling approaches
This community has been extremely helpful while building this, so thanks to everyone who shares knowledge here.
If you want to test it, you can import your own league directly from the landing page.