Case study N° 10 · Data

Offline Draft Board

A self-contained fantasy draft-day board generated from scraped rankings, with no server and no Wi-Fi needed.

The whole app
1HTML file
A Python script scrapes ESPN rankings and depth charts, then writes it.
On draft day
0servers
It opens from disk, and picks survive a refresh in localStorage.
Draft board on the clock at pick 11: player pool with ADP colors and tiers, best available by position, recent picks and team depth charts
Fig. 1|Pick 11 on the clock. Best available by position, tier dividers and team depth charts sit next to the player pool.

What it is

A Python script scrapes ESPN rankings and depth charts and builds one self-contained HTML file to open on draft day.

Highlights

  • Type-ahead pick entry, with tier dividers and chips showing how many players are left at each position and depth-chart role.
  • Depth-chart panels, so you can see a team’s backfield before taking a running back.
  • Undo and state that survives a page refresh, saved in localStorage.

Methods

Stack
Python, Web scraping, HTML, Vanilla JS, localStorage.
Data
The demo runs in your browser on sample data; nothing is sent anywhere.
Status
Shipped Aug 2026. Draft-day room, no signal.