The client
The tours start from Chamarel and ride through the forest trails and viewpoints of the south-west: a half-day nature and sights loop, a full-day adventure loop and a full-day ride that combines the Black River Gorges with the coast. Stops include the Chamarel waterfall, the Seven Coloured Earths and the rum distillery.
The tours are designed for families, holidaymakers and nature lovers, who can book before or during their stay on the island.
The problem
A guided tour has limited places. Each departure has a time, a group size and a guide, so taking bookings by message or phone means checking every request by hand and risking two groups on the same slot.
The business needed visitors to book and pay on their own, at any hour, while the team kept control of dates, capacity and prices.
What they needed
- Tour pages that sell the experience, with photos and itineraries
- Booking by date and time slot, with real availability
- Group size limits and a minimum notice before each tour
- Online card payment, with bank transfer as an option
- Confirmation emails for the guest and for the team
- A back office to manage tours, bookings, prices and content
What we built
The website is built with Next.js, React and Tailwind CSS. Each tour has its own page with its story, its stops, a photo gallery and a booking panel.
On the booking panel the visitor picks a date on a calendar that already hides blocked and fully booked days, then a time slot, the number of riders and optional extras such as a GoPro or an e-bike upgrade. Tours go into a cart, and the checkout collects the lead guest’s details and each rider’s name and age.
Every price and rule is checked again on the server before payment: minimum notice (in Mauritius time), blocked dates, valid time slots, group size and remaining places, all inside a database transaction so two guests cannot take the last seat. Payment goes through MCB Hosted Checkout, or by bank transfer when the team allows it. Promo codes are supported.
After payment, the guest and the team receive a confirmation email, and the confirmation page gives the guest the liability waiver to sign before the ride.
The team works from a private back office: a dashboard with charts, a bookings calendar, orders with their status and custom emails to guests, tour editing (text, photos, time slots, per-person or per-group pricing, blocked dates), page content, promo codes, payment settings and user access.
Delivered features
- Tour pages with itinerary, gallery and booking panel
- Calendar with blocked and fully booked dates
- Time slots, group size limits and minimum notice
- Extras (GoPro, e-bike upgrade) and promo codes
- Cart and checkout with rider names and ages
- MCB Hosted Checkout card payment, or bank transfer
- Confirmation emails to the guest and the team
- Liability waiver on the confirmation page
- Back office: dashboard, calendar, orders, tours, content, coupons, settings
Challenges we solved
No double bookings
Places are counted and reserved inside a single database transaction, so the last seat on a departure can only be sold once, even when two people book at the same moment.
Prices the browser cannot change
The cart shown to the visitor is for display only. The server recalculates the total from the tour settings before any payment is started.
Fast pages, few database reads
Public pages are cached and refreshed the moment the team saves a change in the back office, so the site stays fast without serving outdated tours.
The result
The tour company takes bookings and payments online around the clock, with availability that is always right, and runs its tours, orders and website content from one back office.

