Overview
New York Road Runners (NYRR) is the world's largest running organization, hosting iconic events like the TCS New York City Marathon and more than 30+ annual races across all distances.

The Problem
Engagement spiked in November.
Then it flatlined.
The old ecosystem created a transactional relationship with runners. People showed up for the TCS New York City Marathon, then disappeared. Smaller races fought for visibility across scattered websites, emails, and two aging apps. Without a central platform, NYRR could not hold the community together between marquee events.


The Constraints
We had to build the app on borrowed data.
Early on, NYRR made a business call that shaped everything after it. No race signups. No donations. No login sync with their website. They were mid-transition to a new login platform and did not want the app anywhere near it.
Instead, everything ran through third party APIs. HAKU, replacing FRED, handled login credentials. RTRT handled race data and live tracking. What we could show on any page was not decided by what runners needed. It was decided by what the APIs returned.
Speaks in credentials. Login and account identity only, and mid-migration itself. No profile depth to build on.
Speaks in races. Entries, results, and live tracking, but only for the events it covers, in the shape it chooses.
The constant tension: what would genuinely help runners, versus what the client's business model allowed us to ship. Every screen was a negotiation.
The Reframe
If we could not own the transaction,
we would own the habit.
We stopped chasing the all-in-one app, for now. Version one would be the hub: every race, every result, live tracking for anyone, in one consistent place. Progress, personalization, and community would come later, once the platform earned its footing. That decision became the roadmap. 2.0 builds the foundation. 2.5 builds toward the vision.

Research
Weeks of interviews before a single screen.
Stakeholder interviews, technical reviews with engineering, and user testing with runners and spectators. Users consistently described the old experience as scattered, with information spread across websites, emails, and different apps. Legal and technical constraints around login, personalization, and data storage ultimately defined our 2.0 scope.

Key Decisions
Four decisions that shaped the app.
Components that flex with the data.
Every card, module, and race page was built to render gracefully whether the API returned everything or almost nothing. Missing data could never look broken. This was our answer to designing against endpoints we did not control.
Discoverability over account features.
If runners only opened the app for the marathon, navigation had to surface the other races. We prioritized browse, search, and race information over account features the APIs could not support anyway.
Tracking that needs no login.
Spectators outnumber runners on race day. Live tracking worked without an account, which made the app useful to thousands of people who never laced up. It became our biggest engagement surface.
Design ahead of the APIs.
While shipping 2.0, we designed 2.5 features like personalization and community in parallel. The moment a constraint lifted, the system was ready. Constraint-first now, vision-ready later.
Branding
The energy of race day,
carried into the product.
The shoot brought the identity to life with dynamic, authentic imagery. The determination of runners, the vibrancy of the crowds, and the shared joy that defines NYRR, translated into a visual language that works at every race, not just one.





The Roadmap
Ship the hub. Build toward the all-in-one.
2.0 · Foundation & Centralization
One consistent mobile experience unifying all race content. We established the information architecture, the flexible component system, and the visual language. Personalization stayed out, by design, so nothing shipped that the APIs could quietly break.
2.5 · Personalization & Community
Followed runners, saved races, deeper results history, donations, and engagement modules. The features that were not feasible under early API and legal constraints, now built on 2.0's structure instead of bolted onto it.
The all-in-one
Signups, progress, and a full runner identity, once NYRR's login migration completes. The system is already shaped to receive it.

The Launch
Launched, climbing, and still not done. 🚀
Real usage exposed hidden points that no test could catch: post-race discovery, tracking clarity, and the way spectators actually follow runners. We kept refining with the live data in hand.

Reflection
The constraint was the education.
The hardest part was not the design. It was mediating between what runners needed and what the client's model allowed, sprint after sprint. Building components that could satisfy both sides taught me more about product diplomacy than any unconstrained project could have.
The hub works. The next step is earning the all-in-one. If I could push one thing further, it would be personalization, the piece that turns an app you check during race week into one you open every week.







