RaceDay: from registration to finish-line photo for a city marathon with twenty thousand runners
A city marathon organiser handled registrations on a third-party form, bib collection in long queues, results published days late and runner photos scattered across photographers' drives. We built RaceDay: registration with category limits, bib and kit collection by QR, live tracking from timing mats, instant results and certificates, and AI photo matching by bib number.

Results that took days
RaceDay's race director had one complaint he heard every year: runners finished, then waited days for official results and certificates, and weeks for photos. Registration ran through a generic form that could not handle category caps, and the bib expo produced queues that stretched for hours.
“Runners train for months. They deserve to see their result before they've caught their breath.”
The runner's journey
We mapped a runner's journey from registration to the day after. The high-pressure moments were registration opening, bib collection at the expo, race morning and the minutes after finishing. Each needed its own design — and each had to handle thousands of people at once.
- Registration opening with category caps
- Bib and kit collection at the expo
- Live tracking for families on the course
- Results, certificate and photos after the finish

Instant, from mat to phone
Timing mats on the course read runners' RFID chips, and RaceDay turns those reads into live split times and predicted finish times in the runner app and on a public tracking page. When a runner crosses the finish line, their official result and a personalised certificate are ready within minutes.
Photographers upload to RaceDay, where bib-number recognition matches photos to runners automatically. At the expo, runners show a QR code and collect their kit in under a minute.
The team
Race-day reliability drove the team, with an SRE for load and a timing integration engineer.
Race director workshops and race-weekend operations.
Registration, runner app and tracking.
Registration, expo app, results and certificates.
Timing mat integration and live tracking.
Load testing and race-day monitoring.
Bib-number photo recognition.
7 people in total, working as one team.
Decisions we made
Agreed with the race director and timing partner.
Generic forms or purpose-built registration?
- Third-party forms
- Purpose-built registration with category caps
Our call: Purpose-built registration with category caps. Caps, waves and qualifying times needed real rules.
How to deliver results?
- Publish after verification days later
- Provisional results instantly, verified shortly after
Our call: Provisional results instantly, verified shortly after. Runners wanted results immediately; verification followed without holding them back.
Manual or automatic photo tagging?
- Runners search albums
- Automatic matching by bib number
Our call: Automatic matching by bib number. Each runner found their photos instantly.
Every feature, module by module
Everything that shipped for runners, spectators, volunteers and race control.
- 01Category registration
Categories, caps and waves.
- 02Qualifying time checks
Proof for elite and seeded waves.
- 03Group and corporate entries
Teams registered together.
- 04Online payments
UPI and cards with receipts.
- 05QR kit collection
Kits collected in under a minute.
- 06Runner app
Bib, wave, start time and course info.
- 07Live tracking
Splits and predicted finish on a map.
- 08Public tracking page
Families follow any runner.
- 09Cheer notifications
Runners notified of cheers at splits.
- 10Instant results
Official times within minutes.
- 11Digital certificates
Personalised and shareable.
- 12Photo matching
Photos found by bib number.
- 13Leaderboards
By category and age group.
- 14Timing mat integration
RFID reads processed live.
- 15Course monitoring
Runner density and progress.
- 16Medical alerts
Incidents logged and dispatched.
- 17Volunteer management
Roles and aid station staffing.
- 18Load-tested platform
Proven at many times expected traffic.
- 19Role-based access
Runners, volunteers and race control.

Race day
Registration sold out through RaceDay without the site slowing. The expo queue moved in minutes. On race morning, families followed runners live, and finishers had their certificates before they reached the medal tent.
- Weeks 1–2Discovery
Runner journey and past race issues.
- Weeks 3–4Design
Registration, runner app and tracking.
- Weeks 5–12Build
All modules and timing integration.
- Weeks 13–15Dry runs
Load tests and timing data rehearsals.
- Week 16Race day
Live for the marathon.
What we learned
Instant results change the experience. Runners shared certificates within minutes, which marketed next year's race.
Rehearse the big day. Timing data dry runs removed surprises on race morning.
- Next.js
- React Native
- NestJS
- PostgreSQL
- RFID timing mat integration
- Real-time tracking
- Bib-number photo recognition
- AWS

