The client
The catalogue covers the sea and the land: shared and private catamaran cruises, sunset and dinner cruises, speedboat trips, big game fishing, whale watching, kayaking on the Tamarin River, horse riding on the beach and hikes such as Le Morne, Tamarind Falls and the Black River Gorges.
Visitors can also rent a small car for their stay, with options such as GPS and a child seat.
The problem
Each activity sells in its own way. A shared catamaran sells seats, a private boat sells departures, and a car sells a date range. Handling all of this by message meant checking capacity by hand for every request.
The business needed one place where guests could book any activity or a car, pay safely, and receive a clear confirmation, without the team re-typing bookings.
What they needed
- A searchable catalogue of activities by type: family, sea and nature
- Availability per date, per person or per group departure
- Car rental by date range with delivery options
- One cart and one checkout for everything
- Card payment through MCB, and bank transfer as an option
- A back office for the catalogue, availability, bookings and emails
What we built
The platform is built with Expo and Expo Router (React Native for the web) and exported as a static website, so every activity page loads fast and can be indexed by search engines. A search bar on the home page lets guests filter by activity, date and number of guests.
Each activity page shows the experience, its duration, the meeting point on a map and a booking form. Availability follows the activity: seats for shared trips, departures for private ones. Cars are booked by date range, with delivery options and a minimum notice.
At checkout the guest gives the lead contact, each participant’s name and age, the hotel for pickup and any dietary needs or special requests. Places are reserved at once, and unpaid card holds are released automatically after 30 minutes. Payment goes through MCB Hosted Checkout, or by bank transfer.
The payment flow is built so a guest is never charged twice: the server recalculates the price from the catalogue, only a server check can mark a booking as paid, and the confirmation page handles paid, failed and unconfirmed payments differently. Booking and status emails go to the guest and to the team.
The back office covers the whole business: dashboard, activities and categories, car rental and its settings, availability, bookings (with manual creation), payment settings and editable email templates.
Delivered features
- Activity catalogue: family, sea and nature activities
- Home page search by activity, date and guests
- Availability per seat or per departure, per date
- Car rental by date range with options and delivery
- Cart and checkout for activities and cars
- MCB Hosted Checkout card payment, or bank transfer
- Automatic release of unpaid holds
- Booking and status emails to the guest and the team
- Back office with editable email templates
Challenges we solved
One system, different ways of selling
Shared trips, private departures and car rentals each have their own capacity rules. The availability model handles all three, per date, in Mauritius time.
Safe payments
Prices come from the catalogue on the server, the payment key never reaches the browser, and a booking is marked paid only after the server has verified the payment with the bank.
No seats lost to abandoned carts
Places are held while the guest pays and released automatically if the payment is not completed, so availability stays accurate.
The result
The company sells its activities and car rentals online, with availability the team controls and payments confirmed by the bank, and runs the whole catalogue and every booking from one back office.

