The problem
The resort's bookings ran through Airbnb and Facebook, which meant commission on every stay and no owned audience.
What was built
A direct booking site with an availability checker, three bookable windows (day tour, night tour and 22-hour stay), separately bookable inventory for two units on the same property, a gallery, rates and policy pages, a review wall and a directions module.
The engineering decision
Video hero with an image-poster fallback, per-unit inventory logic so one booking does not block the other, and complete structured metadata so every page previews correctly when shared into a WhatsApp or Facebook group — which is where the bookings actually come from.
How I built it
- Languages
- TypeScriptCSS
- Frameworks & libraries
- Next.js 16ReactPrisma 7 ORM
- Apps & tools
- Claude Code (AI pair-programming)Git & GitHubLighthouseOpenGraph previews (WhatsApp and Facebook)
- Hosting & data
- Vercel
- 01
Booking model
Three bookable windows (day tour, night tour, 22-hour stay) and two units on one property with separate inventory, so one booking never blocks the other.
- 02
Pages
Availability checker, gallery, rates, policies, a review wall and directions.
- 03
Built for sharing
Video hero with an image fallback, and full social metadata so every page previews properly when shared into WhatsApp and Facebook groups, where bookings actually come from.
- 04
Deploy
Hosted on Vercel.
Next plate
ABSH LawA corporate site for a UAE legal consultancy, built to convert search traffic into consultations.