A purpose-built booking platform for 61 outdoor activities — Laravel and React, Windcave and PayPal payments, automated waivers and Activity Cloud sync, designed for a phone on a beach car park.


01
Land & Wave run coasteering, kayaking, paddleboarding, bushcraft, lifeguard qualifications and multi-day residentials across Dorset and Wales — over sixty distinct activities, each with its own pricing rules, group limits and paperwork.
All of it was being sold through an events module bolted onto their WordPress site. It was slow, awkward to use and prone to errors. Customers hit a booking journey that buried the calendar below the fold and made them jump between separate forms to get to a payment screen. Staff hit an admin interface that fought them every time availability needed changing.
The knock-on effects were the real cost:
They needed a booking system built around how they actually sell, not a plugin bent into roughly the right shape.
02
We built a standalone booking portal — booking.landandwave.co.uk — as a dedicated application on Laravel 11, React, MySQL and Tailwind CSS, hosted separately from WordPress and linked from the "Book Now" buttons on each activity page. Customers experience one continuous brand; the booking engine is no longer hostage to the CMS.
A booking flow designed for a phone on a beach car park. Four steps, no detours: pick a date, choose a group size, enter details, pay. The calendar leads the page rather than hiding beneath it, unavailable dates are visibly unselectable, and — a detail that matters for a seasonal business — the calendar opens on the next month that actually has availability instead of stranding customers on an empty grid.

Pricing that matches the commercial model. A single server-side pricing service handles both models: straight per-person, and flat private-group rate plus a per-head charge beyond a set threshold. The same rules are mirrored in the front end so the total updates instantly as the group size changes, with a plain-English breakdown of how it was reached — but the price charged is always the one the server calculates. Deposits, balance payments, discount codes and childcare vouchers are all handled inside the same flow.
Payments without the PCI burden. Card payments run through Windcave's hosted payment page, with PayPal as an alternative route. Card details never touch Land & Wave's servers. Results are confirmed server-side against the payment provider rather than trusted from the browser, with a webhook fallback so a customer closing their browser at the wrong moment can't leave a paid booking unconfirmed.
Paperwork brought in-house. Waivers, health forms and dietary requirements are now part of the portal, tied to the booking reference and configurable per activity through the admin. Multi-participant activities such as Gold DofE residentials collect a name per person. Automated emails confirm the booking, chase outstanding paperwork and balances, and send pre-activity information on a schedule.
Connected to how the business runs. Bookings and completed forms sync through to Activity Cloud automatically, rebuilt as a direct integration with retry handling rather than a WordPress plugin dependency — so the operational system stays current without anyone re-keying a booking.
An admin the team can actually use. Availability management, booking search and amendment, CSV export, discount codes and waiver configuration, in an interface built around the jobs staff do daily.
Availability is decremented inside a database transaction so two customers can't take the last place on the same trip, and the pricing logic is covered by automated tests.
03
Land & Wave now own their booking journey end to end. What was a plugin with a workaround for every business rule is a purpose-built platform that reflects how the company sells:

The portal is live and in active development, with new capability released continuously as the season progresses.