Olivers Travels
Olivers Travels

Olivers Travels

Agency project

Project overview

Oliver's Travels is a premium villa and holiday home rental platform, offering thousands of properties across the world. Working as part of a development team, my responsibilities spanned some of the most technically demanding parts of the project - the headless CMS architecture, the end-to-end booking flow, and the performance layer that ties it all together.


Headless CMS & WP GraphQL

The frontend is built in Next.js with React, powered by a headless WordPress CMS via WPGraphQL and Faust. I was one of three core developers responsible for building out this content layer - designing the GraphQL queries, structuring the data flow from WordPress to the frontend, and ensuring the CMS was intuitive enough for the editorial team to manage content without developer involvement. Part of this work involved migrating a significant volume of content from the legacy Typo3 site across to WordPress, which required careful data mapping and content transformation to preserve structure and integrity at scale.


Dual data sources

One of the more interesting architectural challenges was that property content didn't live in WordPress - it lived in a separate Laravel-based booking system. I was responsible for consuming that API on the frontend alongside the WordPress GraphQL layer, stitching together two distinct data sources into a coherent user-facing experience. Getting those two systems to play nicely, with consistent data shapes and graceful error handling, was a meaningful piece of engineering work.


Booking flow & Stripe

I owned the end-to-end booking flow, integrating Stripe to handle payments securely within the Next.js frontend. Given the high-value nature of villa bookings, reliability and clarity at every step of the checkout process were critical - from property selection and date handling through to payment confirmation.


Performance: Redis caching under 100ms

To meet the performance demands of a high-traffic property platform, I designed and implemented a custom caching layer using Redis (Valkey). Rather than relying on off-the-shelf solutions, I built a custom cache handler that intercepts requests and serves cached pages to users in under 100ms. For a site where property listings and blog content change relatively infrequently but are requested constantly, this made a substantial difference to both perceived performance and infrastructure load.