Yacht Charter Booking Platform — Next.js 16 + Supabase + Stripe
Designed and built a complete reservation system for a luxury yacht charter brand, replacing off-the-shelf booking tools with a fully owned, on-brand flow.
Customers move through a pixel-perfect four-step wizard — dates, guests, add-on services, details — with live pricing, then pay a configurable deposit through Stripe Checkout. Behind it, a Supabase-backed admin panel lets the team manage yachts, services, seasonal pricing, and availability without touching code.
Key engineering decisions: pricing and availability are computed server-side and re-validated before every checkout, so the client can never influence what a booking costs; the Stripe webhook (not the browser redirect) is the sole authority for confirming a reservation, and it's idempotent against duplicate events; confirmed bookings snapshot their line items so later price changes never rewrite past orders; and every booking auto-blocks its dates across the system. All monetary values are stored as integer cents.
Built the entire date-range picker, guest stepper, and service selector by hand against Figma tokens no component library for exact design fidelity on mobile and desktop. Covered the money-critical logic with unit tests and the full booking path with an end-to-end test.
Yacht Charter Booking Platform — Next.js 16 + Supabase + Stripe
Designed and built a complete reservation system for a luxury yacht charter brand, replacing...