Context
ZAB ARTCC is the Albuquerque virtual Air Route Traffic Control Center, a volunteer community on the VATSIM flight-simulation network. Its website ran on a Vue single-page app backed by three separate Node/Express services: the main API, a syncer that pulled the controller roster from VATUSA, and a parser that read VATSIM's live datafile; all three shared a MongoDB database and Redis.
Problem
The backend had grown into a mess. Three Node microservices, maintained by a rotating cast of volunteers, duplicated logic and were hard to reason about or extend.
Approach
I rewrote the entire backend in Laravel, consolidating the three services into a single application. The VATUSA roster sync and the VATSIM datafile parsing, previously split into their own processes so they wouldn't compete writing to the database, became scheduled jobs on Laravel's scheduler and queue workers.
The parser kept the part that mattered most: a point-in-polygon test that decides which controllers and aircraft fall inside the ARTCC's airspace, so the site can show who is actually online and working the sector. The rewrite also included Discord OAuth login, S3 file storage, and transactional email.
The existing Vue SPA was ported onto the new API rather than rebuilt, so the frontend the community already knew stayed intact while everything behind it changed.
Outcome
The three tangled Node services became one Laravel codebase a volunteer team could realistically maintain. The ARTCC has since rebuilt its public UI, so whether my backend is still in service today is an open question, but the rewrite afforded them the breathing room to build and scale their community without being held back by technical debt.