NYC subway status, at a glance. Live at mtastat.us.
Real-time status for all 23 NYC subway lines via the GTFS-RT alerts feed.
There's also a native iOS app with home-screen widgets in NYCTransit/.
- Real-time status for all 23 NYC subway lines via the GTFS-RT alerts feed
- Severity-ranked alerts — shows the worst active alert per line
- 5-minute in-memory cache for train data
- PWA-ready — installable on iOS and Android
- Deployed on Vercel
NYCTransit/ is a standalone SwiftUI app with a WidgetKit extension. It fetches the same transit feed and displays line status on your home screen via small and medium widgets.
- Swift 5.9 / SwiftUI / WidgetKit — iOS 17+
- XcodeGen spec in
project.yml(or use the checked-in.xcodeprojdirectly) - Shared code in
Shared/(models, transit service, alert processing, App Group defaults)
npm install
npm run devRuns at localhost:5173.
Production build:
npm run build
npm startOpen NYCTransit/NYCTransit.xcodeproj in Xcode, set your development team, and run on a device or simulator. Alternatively, regenerate the project from project.yml with XcodeGen.
- SvelteKit (Svelte 5) with
adapter-vercel - GTFS-RT JSON feed (no key required)
- Swift / SwiftUI / WidgetKit — native iOS app and home-screen widgets