Trailmark Events
One platform for the whole race, from runner sign-up and merch to packet pickup and race day. A working prototype.
The race-day half of Trailmark: a free page for every runner, with no app or account for the people following
Live at trailmark.run, and built and load tested for race weekend.
Visit trailmark.run
The story
Trailmark gives every runner at the 2026 Javelina Jundred a free race-day page, a camp, for the people following along: family, friends and crew. Followers open a link. There's no app to download and no account to make.
It started as javelauryn.run, a page I built for one runner's family, friends and crew. Every runner deserves that, so it grew into Trailmark, with a camp for every runner in the race.
Race day means a long night in the desert, patchy signal at the aid stations and a crowd waiting for news. That's what Trailmark is built for.
Race day is one half of Trailmark, and the one I'm focused on. The other half, Trailmark Events, is for the people putting on the race, and you can try its prototype. Together they're the idea: one platform for the whole race, from runner sign-up, merch and packet pickup to a runner app for runners, crews and spectators, and from organizers to coaches to athletes. These camps are that app's first version.
Trailmark isn't affiliated with Aravaipa Running.
The hard parts
Give a camp a bib number and Trailmark pulls the race's official timing, logging each mat the runner crosses, so the page keeps moving while the crew is busy.
Every open page keeps a live connection to the server, so an update from the crew reaches every follower's phone within about a second. A slow poll covers dropped connections.
Followers can get a notification when their runner comes through. On an iPhone that only works from the Home Screen, so the page walks them through adding it.
Anything a crew posts without signal waits in an outbox on the phone and sends itself once the signal comes back, without sending anything twice.
From a runner's goal time and the splits so far, a camp projects when they'll reach the next aid station, so the crew knows where to be and when.
Friends leave cheers for the runner, and react and reply to each other's, so the people watching from home are part of the night too.
At the main aid station, a hundred people can share one Starlink connection, and so one address. Every rate limit is sized and checked for that crowd.
I load test it at about 3,000 open live connections: a hundred camps with thirty followers each, and every crew posting an update every ten seconds.
How it runs
It runs on AWS, with the whole setup written in code using CDK, behind Cloudflare. The servers have no SSH port open and only take traffic from Cloudflare. Every change goes out through tests first, and I get an email after every deploy.
The database is backed up every hour, encrypted, and an alarm emails me if a backup goes missing. Race weekend is the real test, and I'll add how it went once it's over.
Screenshots Demo data
More apps
One platform for the whole race, from runner sign-up and merch to packet pickup and race day. A working prototype.
Runs a gym's eight-week performance challenge, with live leaderboards, coach tablets and a wall TV.