Skip to content
Real-time New York City subway service map
JavaScript CSS HTML Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a React app that relies heavily on's APIs to dynamically generate real-time route maps for the New York City subway with the help of Mapbox, particularly useful when service changes regularly occur on weekends and overnights.

A Mapbox theme was created for this project and has been made public.

See it live at

Running locally

  • Sign up for an account with Mapbox, get a token and add it to an .env file as MAPBOX_TOKEN.

  • Download Stations.csv from the MTA's website and drop it in /src/data/files

  • Download the GTFS schedule files from MTA at (agree to the terms, and then download the data for New York City Transit. (look for "GTFS"). Drop transfers.txt in /src/data/files

  • To have nice looking paths, you'd need to parse out the shapes.txt file from the GTFS package. I wrote a script that takes .csv files to generate these paths. Each .csv file is expected to be a contiguous path for a train route. I took the first shape path (with some exceptions) for each route in shapes.txt and dumped each into its own .csv file before running it.

ruby src/data/generate_json.rb
ruby src/data/generate_transfers_json.rb
yarn install
yarn start


You can’t perform that action at this time.