Case study 03

Waitrose Food & Drink Festival

A ticketed food and drink festival for Waitrose, with masterclasses, chef demos and supplier showcases. Built for the launch-day rush, with door check-in that keeps working when the venue WiFi doesn't.

Waitrose have run a food and drink festival every year since 2016: ticketed masterclasses, chef demos, supplier showcases, all anchored on a live in-person event. We built the platform that year and we’ve kept it running through every edition since.

Ticket pages and chef bios are straightforward. Capacity is the hard part. Each session has a fixed cap, hundreds of people try to book at once, baskets time out if they don’t check out within a window, and waitlists fill the gaps as cancellations come in. The site has to keep all of that consistent under launch-day load.

The other hard part is the in-person bit. Door staff scan QR-coded tickets on phones in a building where the WiFi isn’t always cooperating. We built the check-in flow as an offline-first progressive web app. Scans queue on the phone and sync when there’s signal, so check-in carries on without WiFi. The backend supports it with rate-limited bulk sync endpoints and a fairly defensive view of “did this ticket already get scanned”.

The stack has changed over the years. The original build was Laravel-only with server-rendered Blade templates; today the API stays in Laravel and the customer-facing frontend is a Nuxt PWA, with editorial content coming from a headless CMS.

The customer-facing festival site, with featured sessions and ticket call-to-action
The What's On page where customers browse all available sessions
Admin dashboard the Waitrose team uses to monitor bookings and capacity
Order detail in the admin, with ticket allocation and customer record

Got something similar in mind?

Tell us about the new build, the rewrite or the thing that's been broken for a while, and we'll tell you what we'd do.

Get in touch