Visit the site

Visit the site

Organizations Involved

Community contributions

Perhaps the most significant contribution that came out of this project was some security hardening which was shared with the community as the resolution for SA-CORE-2023-002! We have also helped push Job Scheduler and Entity Queue toward compatibility with Drupal 10. Countless patches in core and contributed modules’ issue queues have also been tested and reviewed as part of the project.

Gullivers Sports Travel is a multi-sport tour operator based in the UK, helping sports fans visit major worldwide sporting events. We at ComputerMinds had previously built them a bespoke website platform using Drupal 7, which a couple of their sister brands shared with them (Events International and Howzat Travel). The arrival of Drupal 9 presented us with an opportunity to audit the codebase, improve the infrastructure and modernize the development workflow around the Drupal platform. Many years of development had gone into building the site on the Drupal 7 platform, and moving to modern Drupal would ensure it could continue to live on for many more years to come - later reaping the benefits of Drupal 10 and so on.

The upgrade project included migrating content, rebuilding bespoke functionality (such as a wizard for booking holiday packages, self-service account pages, and the architecture of the brochure pages), and modernizing things along the way where it would help the project’s progress. A balance had to be struck between porting the ‘old’ approaches and making the most of ‘new’ approaches or ideas. The project budget allowed for some things to be rearchitected, but not everything!

About the project

Content migration

Drupal has an automatic migration system, which we (ComputerMinds) looked to make the most of as a base. Most of the migration scripts needed a fairly significant amount of tweaking but we have plenty of experience in upgrade projects that we could utilise. We have produced and contributed back various potential improvements to Drush and modules provided by the community as part of the process. For example, we worked on making it possible to tailor how much content would be imported in batches with the Migrate Tools module

Migrating cropped images was an interesting challenge, as the modules used for this in the legacy and modern versions of Drupal are completely unrelated, with their own approaches. We have written up what was involved in migrating the cropped images in detail on our own website.

Ultimately, we managed to successfully migrate more than 200,000 entities to the new site. 

Modernization

The newer version of Drupal gives us new APIs that allow us to solve problems in a leaner and more efficient way. For example, we used the Queue system a lot for processing tasks at suitable times, and the Plugin API allowed us to define plugins for Gullivers’ booking reservation web service in a discoverable and maintainable way.

Prior to the upgrade the codebase was hosted on an old instance of Beanstalk, and the sites ran on servers managed by Gullivers themselves, which required a lot of human intervention. We switched to hosting code on Github, where we could make the most of Github Actions to build & deploy code. Platform.sh was chosen to host the new sites, as it has much more modern tooling and good integration with GitHub.

Although the customer-facing look & feel of the websites were left unchanged, the editorial & operations teams reaped the biggest benefits of the Drupal upgrade. They got a fresh new backend theme which they are much happier with; they especially love the new media library & cropping widget.

Each brand using the platform had its own Drupal theme, with its own colors & branding. But the majority of the code in each theme was identical. So in the new platform, we consolidated all the themes into one, with each brand getting its own CSS libraries within the single theme. This allowed us to cut out lots of unused and duplicated code and will make it easier to extend the theme to apply to more brands in the future.

Why Drupal was chosen

The platform had already been performing well on Drupal 7 for about a decade. Administrators at Gullivers were already familiar with it, and the codebase was reliable enough to have matured to the point where it didn’t need frequent work. Drupal provides the flexibility, scalability, performance, and security that Gullivers needed.

Gullivers Travel website homepage screenshot (from 2026)

Technical Specifications

Drupal version:

Why these modules/theme/distribution were chosen

A combination of the Configuration split 2 and Configuration Ignore modules allowed us to use a single codebase for the 3 websites that currently use the platform; https://gulliverstravel.co.uk/, https://eventsinternational.co.uk/ and https://howzattravel.co.uk/ . We ‘manage’ most configuration as common to all three by importing that configuration on deployments. But we exclude some specific configuration so that in some cases (such as certain blocks) each of the three sites can have different configuration. Whilst in other cases (such as webforms) we allow editors’ changes outside code to remain untouched by deployments.

The modules Entity Extra Field and Menu Item Extras are used to provide the ‘mega menus’ that appear when hovering a mouse cursor over the main links in the website header. These modules replaced a much more convoluted system in Drupal 7 that was based on Panels.

Gullivers website homepage screenshot (2023)
Howzat Travel website homepage screenshot
Events International website homepage screenshot
Mobile view of Gullivers F1 event webpage screenshot
Gullivers package webpage screenshot