Case Studies

Virgin Atlantic
& Holidays

A transformation and replatforming project bringing together twelve fractured and disparate applications under a new, unified, headless architecture using React and Next.js.

Screenshot of the Virgin Atlantic & Holidays website; part of John Kavanagh's selected project work.

In Brief

Virgin Atlantic, alongside its sister company Virgin Holidays, is one of the most successful longhaul operators in the UK and has long been synonymous with innovation and highquality service within the travel industry. Following the Covid19 outbreak, Virgin Holidays was brought back inhouse with the airline and rebranded as 'Virgin Atlantic Holidays'. This presented an opportunity to amalgamate its different online platforms under a unified, groundup rebuild of the technology stack, alongside a refreshed look and feel.

My Role

I joined Virgin Atlantic & Holidays as a consultant lead engineer, helping lead the phased migration of its customerfacing web applications onto a shared React and Next.js architecture. My teams and I delivered key parts of the replatform across both brands, whilst supporting a wider brand refresh through the development of a shared Design System and Component Library, creating a more consistent visual experience and technical foundation across their online properties.

Technologies

virginatlantic.com
  1. Preact & React
  2. SCSS & Less
  3. Storybook
  4. Next.js
  5. AEM
Photograph of the tail of an Airbus A350 passenger jet, inside the hangar. The plane's tail is painted in bold red with the 'Virgin' logo across it.

In Detail

Like every airline, Virgin Atlantic felt the impact of Covid19 and had to recover as travel demand returned. Part of that recovery involved moving fragmented online journeys onto a shared platform, with the aim of reducing operating costs whilst increasing sales.

This meant consolidating twelve fragmented digital applications onto a new, unified, cohesive, headless architecture, using a shared Design System and Component Library built with Storybook and React. The aim was to reduce development and maintenance costs over time, whilst improving consistency, user experience, and online performance.

I was brought on as a lead consultant engineer to help deliver the replatform. At the heart of the strategy was a headless architecture, shared Design System, and Component Library, allowing individual properties to be developed and released independently whilst remaining part of the wider Digital First programme.

The phased movement of the brand's various online properties to this new architecture took more than two years to implement fully, requiring detailed planning and coordination across multiple teams and stakeholders, alongside an understanding of both the internal technical landscape and the brand's strategic vision.

By bringing disparate and outdated applications under a shared framework, we improved delivery consistency and frontend performance whilst giving users a more coherent journey. Stakeholder feedback was positive, with an uplift in online searches and bookings.

The resulting shared platform also provided a stronger foundation for future releases. New customerfacing features could be built using the same architecture, Design System, and Component Library rather than extending separate legacy applications.

I've also written about two discussions from this project: how to handle carousels and using seeded randomisation to vary the order of content.

A New Header and Navigation

An early improvement to the Virgin Atlantic and Virgin Atlantic Holidays websites was the introduction of a new Header, Navigation, and Footer. This was one of my first key projects, developed as a standalone React/Next.js application and integrated into each website using ESI.

The result was an animated, accessible, responsive, and contentdriven navigation system, with complete content control through AEM and brandspecific theming for use across both websites.

Design System & Storybook

Working closely with Virgin's design team, we developed a comprehensive set of standardised, reusable, and accessible React components for use across the different brands and applications under the Virgin Atlantic umbrella.

Built and documented in Storybook, with thorough test coverage using Cypress, the Component Library ranged from foundational elements such as typography and icons through to complete layouts and more complex interactive components.

An All‑New Search Experience

Another key feature my team and I developed was the new search experience, an interactive, animated, and accessible interface covering flights, hotels, and complete holiday packages. As with the Header and Footer, this was developed as a standalone React application which could be included across different brand properties using ESI.

User statistics indicated that this version of the search panel was being used approximately 80% more than the previous version, resulting in significantly more bookings.

Search Results: New vs. Old

After completing the new search experience, my team shifted focus to the flight search results application for Virgin Atlantic.

The original version had often faced criticism for having a cluttered interface, being unintuitive, and difficult to navigate. It was also perceived to be slow and clunky, running on an application and architecture that was more than seven years old.

We developed and deployed 'Version 3.0' of Flight Results, a groundup replatforming of the application in Next.js, with an allnew GraphQL API infrastructure. This also gave us the opportunity to simplify the UI whilst delivering a significantly faster and more stable experience.

A desktop-sized screenshot of the original Virgin Atlantic search results screen, showing results for a search between London Heathrow and Atlanta. Here, we see a busy and complicated UI and the old 'five card' layout.A screenshot of the new '3.0' version of Virgin Atlantic's search results screen. In comparison to the legacy version, this presents a much simpler and more intuitive set of results to the user.

During load testing, our new architecture performed extremely well, continuing to respond well past 400 visitors per second a tenfold improvement over the previous version. Moving filtering and sorting to the client side also resulted in a quicker, more seamless user experience, providing instantaneous results to our users and replacing the need for an additional backend call and loading spinner.

Virgin Atlantic Holidays: Old vs. New

The work that my team and I had undertaken over the previous year culminated in the staggered launch of a new homepage for Virgin Atlantic Holidays. This was an allnew Next.js application that we developed, incorporating the refreshed branding alongside the Header, Navigation, Footer, and Search components. Page content was managed through AEM, using our shared Component Library.

A screenshot of the original version of the Virgin Atlantic Holidays website homepage, in desktop size. This demonstrates how significant the visual changes and rebuild project was.Screenshot of the Virgin Atlantic Holidays website homepage, in desktop size. Showing the entirely new look and feel following our work to rebuild and replatform the website.
A screenshot of the previous version of the Virgin Atlantic Holidays homepage at mobile device screen size. This helps to demonstrate how significant the change our project has produced has been.A screenshot of the new Virgin Atlantic Holidays homepage at a mobile device screen size. This shows the result of the project: a complete rebuild and replatform with an all-new look-and-feel.

The Outcome

Over more than two years, the replatform project brought previously separate customer journeys onto a shared technical foundation across Virgin Atlantic and Virgin Atlantic Holidays. Alongside measurable improvements in performance, searches, and bookings, it left both brands with a more consistent and unified experience and a reusable architecture, Design System, and Component Library for future development.


Need senior
delivery support?

I can work close to the code while helping shape the technical decisions, delivery path, and tradeoffs around the project.