New York Road Runners

Every race in New York.
One place to run it.

NYRR hosts more than 30 races a year, but its app only mattered one week of it. We rebuilt it into the year-round home for every runner, every spectator, every race.

As a new runner designing for a community I am part of, this project hit closer to home than most.

RoleProduct Designer
ClientNew York Road Runners
ResponsibilityDesign & Strategy
Duration2024 — 2025

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.

NYRR app screens

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.

0annual races across all distances
1 weekof peak engagement per year
0disconnected apps runners had to juggle
More than 30 NYRR race logos across all distancesUnited Airlines NYC Half and TCS New York City Marathon race apps

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.

API 1HAKU

Speaks in credentials. Login and account identity only, and mid-migration itself. No profile depth to build on.

API 2RTRT

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.

Reframe diagram

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.

Research artifacts

Key Decisions

Four decisions that shaped the app.

01

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.

02

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.

03

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.

04

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.

Shipped

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.

Shipped

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.

Future

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.

Roadmap

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.

NYRR app screens at launch
0devices using the tracking feature
0total users engaged with Tracking
0used the Following feature

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.

More projects
Verizon SearchVerizon ConsoleoVice Design System