Skip to content
Back to all projects
Full-Stack App2026Building Now

parkrun leaderboard

A small leaderboard for a group of friends, filled by forwarding the results emails parkrun already sends each runner. Built after parkrun's website turned out not to be something to read automatically.

Maker & Role
1Zero9 Studio · Idea, Design & Build
Focus & Tags
sports · community · email
Tech Stack
Cloudflare Workers, Cloudflare D1, Cloudflare Email Routing, TypeScript
Reading Time
1 min read

Key Features & Outcomes

  • No scraping: a Worker reads the results email a runner forwards to a site address and stores the run once, so only people who choose to share are included
  • Runners are matched by a scrambled (hashed) email address; no plain addresses and no raw emails are stored
  • Chose the route after the obvious one failed: parkrun refuses automated requests, so the project stopped reading its pages and switched to email rather than working around the block

The idea

A leaderboard for friends who run parkrun: total runs, best times and age grades, in one place. The first plan was to read each runner's public results page.

The build

parkrun blocks automated requests, and posing as a browser to get round that would have been the wrong answer for a site that runs on a schedule. The alternative was already in everyone's inbox: parkrun emails each runner their result after every run. A Cloudflare Worker now receives those emails at a dedicated address, reads the time, position and age grade, and adds the run to the leaderboard.

History before someone starts forwarding needs a separate way to load it, which is not built yet. This is an unofficial site for friends and is not affiliated with parkrun; the data and its terms belong to parkrun.