Riot publishes every pro LoL player contract in the League-Recognized Contract Database, a public Google Sheet with five tabs, a different layout per region, and no way to answer "who is out of contract soon?" without scrolling. I had a go at fixing that over a few days, working with Claude (claude.ai) for the code. https://set0panda.github.io/contract-radar/ What it does: - Expiry radar: about 570 current players across 5 regions, with a contract-end timeline you can filter by region, league and role - Market board: who is out of contract inside a window you pick, split by role - What changed: a daily diff of the sheet (new listings, removals, moved end dates). It started today, so it's still empty and fills in as the sheet changes - Data health: flags duplicates, missing dates and stale tabs (the CN sheet is about three months old, for example) How it's built, for the curious: plain HTML and JS, no framework, hosted on GitHub Pages. A scheduled GitHub Action pulls the sheet each morning, strips contact emails and legal names, diffs against the previous snapshot and commits the result. Team logos are embedded so the page makes no third-party requests. Total running cost is zero. Analytics is GoatCounter, no cookies. It's an unofficial fan project, not affiliated with Riot. The AI wrote most of the code and parsing, so check anything important against the source sheet. A contract end date is also not the same as free agency, because renewals often aren't on the sheet yet. What I'd like to know: Does the page make sense in the first ten seconds, without knowing what the sheet is? The audience (agents, analysts, team staff, very online fans) is small and already has Leaguepedia. Would you come back to something like this, and what would make you? Does the daily-Action-commits-data approach have a flaw I'm not seeing?   submitted by   /u/Ok_Ideal_6311 [link]   [comments]