Relay Race Command Center
What is this?
DUDE, Where’s My Team? is a small, focused app for relay teams who need to know one thing at any moment: who’s out there running, and when does the next handoff happen?
It’s built for the chaos of long, multi-leg races. Point-to-point overnight relays, timed-loop ultras, and any other event where teammates trade off running while everyone else hunts for the next exchange in two vans at 3 a.m.
Why this, not a group chat + spreadsheet
Look, you could run your race off a Google Sheet, three group texts, and a captain who hasn’t slept since Thursday. People have. It’s ugly.
- Built for overnight relays: Not a generic team app with relay bolted on. Every screen exists because someone, at 3 a.m., in a parking lot, asked “wait, who’s up next?”
- Live leg tracking & handoff alerts: The whole team sees who’s on the course, how far in, and when the next exchange hits, no “ETA?” texts to the runner who can’t check their phone.
- Late-finisher alerts for captains and admins: If a runner blows past their predicted finish, the people who can do something about it get pinged. Nobody else has to refresh a spreadsheet.
- Kills the spreadsheet and the 200-message thread: Roster, paces, leg assignments, exchange points, packing list, race notes, all in one place that everyone can read. The group chat goes back to being for memes.
- Tamper-resistant activity log: Every start, end, and reset is timestamped with who did it. Settles every “wait, did we start leg 14?” argument before it starts.
Who it’s for
Captains coordinating the start/finish line, admins who run the show when the captain is on a leg, runners checking how much time they have before they’re up, and supporters in another vehicle trying to figure out where to be next.
The big ideas
- Teams: One team per race. Up to ~24 people across two vans is normal.
- Roles: Captain (1) and Admins (3) can start/end legs. Runners and supporters view-only.
- Legs or Laps: Numbered legs for point-to-point relays (pick any count from 6 to 60), or timed-loop laps for ultras.
- Vans: Tell the app how many runners ride in each van and it estimates when that van’s shift ends and when the other van is back on the clock.
- Predicted ETAs: We multiply each runner’s pace by their leg distance to estimate finish times, then adjust as anyone syncs the runner’s progress.
- Per-team profiles: Your name, phone, pace, van, and packing list are saved per team. Captain on one race and runner on another? Different paces, different lists, no conflict.
- Activity log: Every start, end, and reset is recorded with who did it and when.
Getting started
- 1
Sign in with a magic link
Enter your email on the sign-in page. We send a one-tap link, no password to remember. Open it on the phone you’ll use during the race.
- 2
Create or join a team
Captains create a team and get a 6-character invite code. Everyone else taps “Join a team” and enters that code (or opens an invite link).
- 3
Set your name and pace for this team
Enter your projected race pace in minutes per mile. The app uses this to predict when you’ll finish your legs, accurate paces make the whole team’s ETAs more useful. Each team keeps its own profile, so a different race can have a different pace, van, and packing list.
Roles & permissions
Four people on each team can control leg state: 1 Captain + 3 Admins. That covers the case where the captain is running while the other admins are in the second van, there’s always someone available to start or end a leg.
- Captain: Creates the team, sets race format, manages settings, transfers role.
- Admin (up to 3): Starts/ends legs and laps, edits leg assignments.
- Runner / Supporter: View dashboard, see who’s up, browse the activity log.
The five tabs
- Race: Live status: who’s running now, who’s on deck, predicted finish, van shift estimate, team progress bar, and the full leg (or lap) list with start/end controls.
- Map: Course map with exchange points so the off-duty van knows where to drive next.
- Team: The roster: names, paces, van assignments, roles, and which legs each person has left.
- Me: Your legs, your times, and your packing checklist for this team. Finished legs get crossed off.
- Setup: Race details, format, leg count, vans, race notes, invite code, theme, and the finish-soon sound.
Alerts, SOS, and sound
- Late-finish alerts: When a runner passes their predicted finish, captains and admins get a toast right away. No refreshing.
- Finish-soon chime: Opt in from Setup and your phone plays a chime 1, 2, or 5 minutes before the current runner is due in. Handy when you’re half asleep in the van.
- SOS button: Always-red button floating on every tab. Tap it and captains and admins are alerted immediately, with a banner showing who has acknowledged it.
- Progress sync: Anyone can slide the current runner’s percent complete to correct the estimate. Every ETA on the team recalculates.
Race formats
Relay (numbered legs): A sequence of numbered legs, anywhere from 6 to 60, 36 by default. Runners rotate through their assigned legs in order, exchanging at predefined points. Think point-to-point overnight relays run by two vans.
Timed loop: A fixed time window (e.g. midnight-to-noon) during which runners do laps of a single course. Anyone can run the next lap, and laps keep counting until the window closes. Set (or fix) the loop distance any time from Setup.
Pace & ETA math
Each leg has a distance. Each runner has a pace in minutes per mile. The predicted finish time is simply distance × pace, added to the leg’s start time.
The dashboard’s “predicted progress” bar fills smoothly from 0% at start to 100% at the predicted finish, so you can eyeball at a glance how close the current runner is to the next exchange.
Activity log
Every leg or lap that’s started, ended, or reset is recorded, who did it, which runner it was for, and the exact timestamp. Open the menu in the app and tap “Activity log” to view it.
- Filter: By runner, action type (legs vs laps), leg/lap number, or date range.
- Export: Download the full log as CSV, or share it via the system share sheet.
- Audit: Useful post-race for race directors and team retros.
Install on your phone
The app runs in the browser, but you can pin it to your home screen so it launches full-screen with its own icon, no browser address bar, faster start, easier to find during the race.
On supported browsers (Chrome, Edge, Samsung Internet, Android) the button above triggers the native install prompt. On iPhone/iPad Safari, it opens step-by-step instructions because Apple doesn’t expose an automatic install API.
- iPhone / iPad (Safari): Share button → “Add to Home Screen” → Add. Must be Safari, not Chrome on iOS.
- Android (Chrome / Edge): Tap the install button above, or use the browser’s “Install app” menu item.
- Desktop (Chrome / Edge): Install button above, or click the install icon in the address bar.
- Firefox: No install support, just bookmark the page or pin the tab.
Privacy & data
We store the minimum needed to run a team: your name, email, phone (if you add one), race pace, the legs you run, and the activity log. Data lives in a Supabase Postgres database with row-level security so only your teammates can see your team’s data.
- No GPS: We don’t track your location. Progress comes from the times you enter and the percent-complete slider someone moves by hand.
- No background tracking: Nothing runs when the app isn’t open.
- No third-party analytics: No ads, no trackers, no fingerprinting.
- Leaving a team: Captains can remove members; you can also leave from settings.
- Auto-cleanup after the race: About two weeks after a race’s scheduled end, the team and all of its data (legs, laps, notes, packing lists, activity log, and your profile for that team) are permanently deleted. Save anything you want to keep (export the activity log as CSV) before then. Your account and any other teams you’re on aren’t affected.
Troubleshooting & FAQ
›I didn't get the magic-link email
›The captain is running and no one can start the next leg
›I joined the wrong team
›Can I change my pace mid-race?
›What happens if we start a leg by mistake?
›What if a runner can't finish their leg?
›Does it work offline?
›Can I install it like a real app?
›How is this different from a group text or shared spreadsheet?
›Can two teams use the same invite code?
›What does the activity log actually record?
›How do I leave a team?
›Can my phone warn me before the runner comes in?
›What does the red SOS button do?
›How does the van estimate work?
›Who do I contact for help?
DUDE, Where’s My Team? · v1