All case studies
Modernising John Lewis: Frontend, Infrastructure, and Everything in Between logo
RetailOngoing — multiple phases

Modernising John Lewis: Frontend, Infrastructure, and Everything in Between

A long-running engagement spanning Next.js migration, GCP infrastructure, third-party dependency removal, microfrontend architecture, and CI/CD modernisation — across both John Lewis and Waitrose.

4+

Distinct engineering phases delivered

2

Brands — John Lewis & Waitrose

On-prem → GCP

Membership infrastructure migration

Eliminated

Third-party membership data dependency

The challenge

John Lewis had accumulated technical debt across the full stack. The product description page — one of the highest-traffic pages in retail — had grown complex enough that frontend changes were slow and risky. The membership module underpinning their loyalty programme was running on on-premise infrastructure. A critical dependency on an external third-party service controlled the membership data model and drove physical card fulfilment — meaning any loyalty programme change required external vendor coordination. The delivery pipeline, built on Jenkins, had become a bottleneck: slow builds, manual steps, and configuration that required specialist knowledge to maintain.

What we did

  1. 1

    Next.js migration — Product Description Page

    The PDP was the first target: a high-traffic page that had accumulated enough complexity to make frontend changes genuinely risky. We migrated it to Next.js, establishing the architectural direction for the wider frontend and making the page faster, safer to change, and owned by the team rather than feared by them.

  2. 2

    Membership module — on-premise to GCP

    We lifted the membership module from on-site hardware to GCP. This wasn't just a hosting change — on-premise systems carry infrastructure-level assumptions baked into networking, state management, and service discovery that have to be unpicked before you can rebuild cleanly. The result is a module that scales, is fully observable, and no longer depends on physical hardware availability.

  3. 3

    Removing the third-party membership dependency

    The external service that held the membership data model and drove physical card generation was a liability — any loyalty programme change required coordinating with a vendor who had no incentive to move quickly. We began building equivalent capability in-house, migrating data and integrations without disrupting members or the card fulfilment process. Work is ongoing; the direction is full ownership.

  4. 4

    Microfrontends — Rewards module

    Rather than one team owning a monolithic rewards frontend, we designed and built a microfrontend architecture that lets each team deploy their slice independently. This eliminated the release coupling that had been forcing the rewards roadmap to slow down whenever any part of the frontend needed a change.

  5. 5

    Extending GCP to MyWaitrose & My JL + replacing Jenkins

    The current phase brings the same infrastructure modernisation to the Waitrose and John Lewis card programmes, while replacing Jenkins with a self-service delivery pipeline driven by quality gates. Engineers will ship without waiting on a shared resource — and release decisions will be driven by automated signals, not manual coordination.

The outcome

  • Next.js PDP migration complete — frontend changes are faster, safer, and owned by the team rather than feared.
  • Membership module live on GCP — scalable, observable, and free from on-site hardware constraints.
  • Third-party membership dependency in active removal — full data model ownership within reach.
  • Microfrontend rewards module enables parallel development across teams with no release coupling.
  • Jenkins pipeline replacement in progress — moving toward a self-service, auditable delivery process.

Stack & approach

Next.jsGCPMicrofrontendsJenkins → Modern CINode.jsREST APIs

Work with us

Facing a similar challenge? Let's look at it together.

We embed in your team, diagnose the actual problem, and deliver a specific, measurable result. No drawn-out retainers. No vague roadmaps.

Start the conversation →