
The problem
A diving school's website has to do more than market: it has to take bookings, collect medical clearance before someone gets in the water, and stay useful to a traveller on an island connection that keeps dropping.
Approach
Next.js 15 across Cloudflare Pages, Workers, and D1, covering 19 SSI course listings, a booking flow with payment on arrival, a medical questionnaire for safety compliance, a travel guide, a 24-species marine-life encyclopedia, and an admin dashboard for managing bookings. PWA support gives offline access for exactly the connectivity problem the Andamans present.
In short
- 19 SSI course listings with booking and medical-clearance questionnaire flow
- Admin dashboard for booking management, plus user accounts
- PWA with offline access, deployed across Cloudflare Pages, Workers, and D1
What I took from it
The offline requirement was not a nice-to-have here. It followed directly from where the users physically are when they need the site.
Built with
- Next.js 15
- TypeScript
- Cloudflare Pages
- Cloudflare Workers
- Cloudflare D1
- Prisma
- HeroUI
- Framer Motion