MTA 20-Year Needs Assessment

The MTA's 20-Year Needs Assessment is a comprehensive planning document that defines the capital investment required to maintain and modernize New York's transit network over the next two decades. The public-facing website at future.mta.info was originally built by an external consultant, HDR, using jQuery and vanilla JavaScript. When the contract ended and the site became our team's product to own, I took on the challenge of migrating it entirely in-house.
As the only person on my unit with web development experience, I was responsible for more than just code — I had to manage hosting, deployment, and ongoing maintenance, and navigate the MTA's internal web infrastructure to find a sustainable path forward. This meant collaborating across departments and eventually working with the MTA's web team to bring the site onto the mta.info domain, a meaningful step toward treating our public communications as a first-class product rather than a contractor deliverable.
To meet the web team's development standards, I taught myself React and the broader modern JavaScript ecosystem from scratch. The original site had a distinct feel — a layered navigation structure and animated slider-based storytelling — and recreating that faithfully in React required evaluating many libraries and making deliberate component architecture choices. The result is a maintainable, standardized site that any web-familiar team member can now update or extend, without dependency on outside vendors.
Built with React and React Router, the site is deployed on Netlify with a custom plugin enforcing strict Content Security Policy headers. The CSP configuration whitelists only trusted scripts (Google Analytics, GTM, *.mta.info) with nonce-based validation — a meaningful step toward XSS protection on a high-traffic government-adjacent website.

