My leaderboard site updates itself while I sleep — pure-stdlib Python, GitHub Actions, zero servers
My side project, PD.Radar , ranks resources mentioned in big Ask HN threads by citations (distinct commenters naming the thing), not by upvotes. Upvotes measure drama; citations measure how many people independently bothered to name the same resource. The site went live with one leaderboard: 540 comments from "What is the best money you have spent on professional development?", 24 resources…
PD.Radar is a side project that ranks resources mentioned in Ask HN threads by citations rather than upvotes. The site went live with one leaderboard, featuring 540 comments and 24 resources ranked. The current champion is "What is the best money you have spent on professional development?" with 51 citations.
The site's data was frozen on the day of its initial build, necessitating an automated solution. The fix was a Python script named auto_update.py, comprising less than 300 lines of pure stdlib code. This script runs daily via GitHub Actions and performs two tasks: re-mine the flagship thread and discover new Ask HN question threads for potential new leaderboards.
To ensure the integrity of the rankings, a set of rules governs which threads are published. The script looks for threads that ask for recommendations and contains at least 5 distinct resources, each with a minimum of 3 citations. Threads with weak matches are not published. Additionally, rejected threads are remembered for 45 days to prevent re-evaluation.
The project demonstrates the power of an honesty gate, ensuring that the rankings remain verifiable and not influenced by false positives. The site includes five leaderboards, each with a list of resources and their corresponding citations. The flagship leaderboard is displayed on the default tab, while the remaining leaderboards are sorted by points.
The GitHub Actions pipeline is simple and cost-effective, with zero infrastructure costs. The commit history serves as a changelog of every autonomous editorial decision made by the engine. The project highlights the benefits of using GitHub Actions instead of a server, as the entire system relies on static files and a straightforward deploy process.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.