Giving it its own home

MGM’s trip lists, itineraries and reservation details originally lived inside the larger Account app. In late 2022, we were moving those experiences into separate applications, and I took on Trips.

I started the repository in November and built most of the new app. Guests could see their upcoming trips, open room and dining reservations, view an itinerary, and share trips with other people. I also built the pages for opening and saving a trip someone else had shared.

The existing behavior had to come with it. That included the analytics events behind the team’s reporting, along with the guest screens. Moving the pages into a new codebase couldn’t mean losing the information people already used to understand the product.

The first version went live in May 2023, about six months after I started.

Keeping links working

Once Trips had its own app, we continued simplifying how it fit into MGM’s platform. One change was removing hotel names from the page URLs, which also let us remove a lot of property-specific routing from the code.

The complication was the rollout. Our app and the infrastructure directing traffic to it couldn’t switch at exactly the same moment. During the transition, the old routing rules could still send someone to an address the new app no longer served.

I added temporary support for both address formats so either set of rules could reach a working page. That let us make the switch while keeping guests’ trip pages available. The compatibility code had a specific purpose and could be removed afterward.

Staying with it

Later, the team rebuilt Trips using MGM’s new design system. I built the new theme and parts of the experience myself, while other engineers took on much of the page work.

My role increasingly involved reviewing those changes and keeping the app consistent as more people contributed. That meant checking the guest experience as well as the code: how pages handled missing reservation details, whether shared components were being used correctly, and what happened when someone moved between pages.

Nearly four years after the first commit, much of the structure I originally built is still there. The team has been able to keep changing the product on top of it, through a redesign and several changes to the shared platform.