Powered by live data from Sleeper

Fantasy Football, minus the guesswork

This corner of the portfolio talks to the Sleeper API to pull real fantasy football data from my friends' head-to-head league. No mock data, no CSV exports — every roster, matchup, avatar, and score you see here came over the wire from api.sleeper.app moments before you asked for it.

How the sausage is made

Server-side fetching

The pages use SvelteKit load functions that call Sleeper on the server, parse the responses into tidy types, and hand clean data to the components. Boring on purpose — which is why it feels instant.

Polite caching

Sleeper is generous with its free API, but I still cache responses for a minute at a time. Rosters and members barely change mid-season; live scores refresh when you hit the Refresh button (or on visit). Be excellent to rate limits.

Season archaeology

On load, the app discovers every season the league has played and rebuilds each one — matchups, rosters, results — so you can flip back to year one and see who the original champion was. (It was probably me.)

Zero secrets

The whole thing runs on Sleeper's public endpoints — no API key, no OAuth dance, no backend of my own. Just fetch calls and a league ID hard-coded for one gloriously petty head-to-head league.

What's inside

Data source Sleeper API v1
API key required None
League ID 1388688821515751424
Real data? Very

Built for bragging rights that expire in February. 🏈