How MTA uses Expo to keep New York City moving
Users•React Native•Development••6 minutes read
Dan Kelly
Marketing
MTA uses Expo to keep New York City moving with fast OTA updates, reliable builds, and a lean team powering two major transit apps for 350k+ daily users.

If the MTA app stops working, it turns into mayhem on the subway.
And I don’t mean “people complaining on Twitter” mayhem — I mean conductors can’t verify tickets, passengers can’t plan trips, and an entire train car of New Yorkers suddenly has no idea how to get where they’re going.
When your software is the front door to the transit system, you can’t leave people waiting. That’s why MTA made over-the-air (OTA) updates, powered by Expo, a cornerstone of their mobile strategy.
About the MTA mobile team
The MTA’s digital services team consists of 20 people and operates like a startup within one of the largest transit agencies in the world. They're responsible for:
- All the realtime signage in subway stations
- Two public-facing mobile apps (both Expo)
- The public website
- A couple cool internal tools like Radar
The mobile engineering team is small considering the fact that they serve 350K daily active users who expect MTA services to work perfectly 24/7. The team looks like this:
- 15 engineers across all products, backend and frontend
- 2 PMs
- 1 data specialist
- 1 designer
The two Expo apps
The digital services team builds two different apps with Expo. One that serves the bus and subway riders in the city. And another to serve the people who are trying to get out of the city. Both apps are deployed to the App Store and Play store.
- TrainTime: Serves Metro-North and Long Island Rail Road riders. Riders can plan trips for specific trains, buy tickets, and show them to conductors. They built this app with Expo in 2022 and it boasts an impressive 4.9-star rating on over 200K+ reviews.
- MTA Subway & Bus App: The version in the app store today isn’t built with Expo. That’s because it wasn’t built by the existing team (they inherited it). But the new version launching in Q1 of 2026 will be. It’s a complete rethink of the rider experience for subway and bus customers. (They're very excited to show people what they’ve done with Expo in that app!)
Why MTA chose Expo
The leader of the digital services team is Will Fisher and his history with Expo goes back to his startup days in the early React Native era circa 2017. Back then, Expo’s OTA update capability was (in his opinion) the primary reason to use it; and (in his view) it still is.
When they started building mobile apps at MTA, they didn’t consider alternatives. Fully native development wasn’t an option for them. With a small team, supporting separate iOS and Android codebases would have slowed them down. React Native gave them the coverage they needed without doubling their workload.
They never seriously considered Flutter. React Native’s ecosystem was stronger, and Expo’s tooling made the decision easy. They could deliver everything the business needed with fewer engineers. Above and beyond everything was their need to fix production-breaking bugs in minutes, not days. Will says,
Expo is so obviously the go-to framework to accomplish over-the-air updates. There was no, ‘should we use this player or that player?’ Expo is the player for OTA.
And if you go to reactnative.dev today you’ll quickly find that Expo is the default platform for building React Native apps. And it’s a default the MTA team is really happy with.
The tools and the services are thoughtfully designed. You can feel the craftsmanship of the team at Expo. So, yes Expo is the default, but Expo is also a talented team delivering excellent value. They’ve earned a ton of trust from us over the last 5+ years.
How MTA uses Expo
Today, MTA uses Expo in three main ways:
- EAS Update: Reserved for hotfixes to core flows like trip planning and ticket purchasing. Luckily they don’t break often, but it helps Will (and execs) sleep at night knowing they can fix major bugs very quickly.
- EAS Build: Their CI/CD backbone, producing production builds every three weeks. They love that it also removes a ton of the complexity with setting up code signing, push notification keys, etc.
- Expo libraries: The Expo libraries are always the default choice whenever one exists for their needs. They rely heavily on the following libraries: Expo location, Expo Image, Expo calendar, and Expo for Sentry
Their release process is simple:
- Build → Deploy → Beta/Production
- Manual QA for core flows (no automated visual tests — too brittle for their needs)
When a critical bug hits, we can identify, patch, and deploy an OTA fix in under 90 seconds from the first user report. This keeps the NYC mayhem at bay.
The impact of building with Expo
When your app is part of the transit system, downtime is felt instantly.
Within 90 seconds of a core flow breaking, they hear from staff or riders. OTA updates let them resolve those issues before the disruption spreads.
This approach has allowed them to recover from critical bugs without App Store delays.
What’s next for the MTA apps?
In Q1 of 2026 they will launch the new Subway & Bus app on Expo, bringing these benefits to their largest ridership base. They expect faster iteration, easier onboarding, and more consistency across the system once that app is live on Expo.
For us, the value hasn’t changed since my startup days: OTA updates are a safety net we can’t operate without and Expo delivers them better than anyone. In the future we will experiment with Workflows for upgrading our release pipeline and Hosting for hosting our API Routes.
If you’re interested in joining MTA to work on these two Expo apps you're in luck because they're hiring for a backend engineer and a UX designer!




