A 50-year-old dive school in Tipaza, taken off WhatsApp and onto a system it runs itself.
Google's good threshold is 2.5 s.
Nothing moves under the reader's thumb while the page loads.
The web median is close to 2.5 MB for the same job.
Reservation, Offer, Review, Service and six more.
Measured on the live site on 27 August 2026.
The brief.
Club SEC 17 has taught people to dive off Port de Tipaza since 1974. Its reputation arrived long before its infrastructure did: every reservation, availability check and follow-up ran through two personal phone numbers.
We built the operating layer that reputation deserved: a self-service booking flow with real capacity behind it, a staff dashboard that replaced memory with a shared record, QR-verifiable certificates, and a consent-tracked photo delivery pipeline. It ships on Next.js, loads its largest element in under half a second, and the club runs it without us.
The audience is French-speaking leisure divers and tourists around Tipaza and Algiers, booking a first baptême or a P1 to P3 certification. It is a cash market with no online payment, so the site's job is not to take money. It is to hold an accurate, confirmable place in a real diary.
Where it started
As reported by the club.
- Two personal phone numbers as the entire booking system
- Capacity tracked by memory, cross-checked by scrolling chat history
- No structured record of past divers to re-engage
- Certificates unverifiable once out of the club's hands
- No analytics, so no answer to where bookings come from
What it had to achieve.
- Move discovery-dive reservations off phone and WhatsApp onto a self-service flow the diver completes alone.
- Give staff one place to see and manage capacity instead of reconstructing it from chat threads.
- Make a certificate checkable by a third party without the club being in the loop.
- Put a measurement layer in place so the next decisions are read rather than guessed.
The work.
Self-service booking with real capacity behind it
Per-date capacity limits, and detection of an existing upcoming reservation on the same phone number. Duplicate detection keys on the phone number rather than an account, because this audience will not create one. The flow has to work for a first-time visitor who arrived from Instagram ninety seconds ago.
Replaces a WhatsApp thread where staff checked availability by memory. Mobile LCP 0.52 s, 40 requests.

An admin dashboard that replaced staff memory
Reservations, availability, photos, certificates, messages and users behind one sign-in. It shows how many divers are coming and who still has to be phoned, with a nine-day capacity chart and sea-closed days hatched.
The system did not abolish the phone call, it scheduled it. Confirmation still happens by phone the day before, because that is how the club runs. The dashboard makes sure nobody is missed, and counts the attempts when someone does not pick up.

Certificates that verify themselves
Each certificate is generated automatically with a QR code that leads to a public verification route. A third party enters one eight-character code and gets an answer, with the club out of the loop.

Watermarked photo delivery, with consent on the record
Every delivery link is scoped to one recipient and one set of photographs, with a consent step per recipient. There is no public URL to screenshot. Before, photos went out by hand over WhatsApp and Instagram with no record of who agreed to what.
The measurement layer
Google Analytics 4 and Microsoft Clarity are live. Before, there was no analytics of any kind, and so no way to tell a good decision from a lucky one.
Evidence.
Desktop LCP was measured in headless Chromium at 1440 by 900, mobile at 390 by 844 at 2x. CLS is accumulated over the full load, excluding shifts after user input. Time to first byte is navigation timing from Vercel's edge. Page weight is transferred bytes across 59 requests on the home page.
What changed.
The before column is the club's own account, not something we measured. The after column is observable on the live site.
“Before, every booking went through two phones and we were always afraid of overbooking. Now every reservation, every diver and the whole history of the club is in one place, and we run it ourselves.”
“Plonger fi SEC 17 kanet une aventure inoubliable! L'eau kanet cristalline ou les guides kanou yaarfou chaque détail du site.”
Where it stands.
- The club takes reservations without a person mediating every one of them.
- Capacity is enforced by the system rather than remembered by staff.
- A certificate issued in Tipaza can be checked from anywhere.
- Two measurement tools are live, so the next decisions have data underneath them.
We do not claim a booking-volume or conversion lift. That needs a tracked baseline over a full season, and that data does not exist yet.
What's next
- Define the conversion events in GA4 so booking starts, completions and abandonment are counted.
- Read a full season of Clarity recordings against the booking screen.
- Add alt text to the 45 of 69 gallery images that still ship without it.
Screens.






