About this project
The Wild Oasis is a full-stack cabin booking product I built for a fictional family-run luxury retreat. The goal was simple but demanding: let guests browse cabins, check availability, complete reservations, and manage their profile without friction — while keeping the marketing site fast, SEO-friendly, and easy to maintain.
I approached the project as a real product, not a demo. Travelers land on a content-heavy marketing surface that needs strong Core Web Vitals, then move into authenticated flows for bookings and account settings. That split pushed me toward Next.js hybrid rendering: static and server-rendered pages for discovery and SEO, with protected client routes for reservation management.
Authentication uses OAuth-backed sessions so guests can sign in securely without a custom password stack. Cabin inventory, bookings, and guest data live in Supabase, which kept the backend lean while still supporting real-time-friendly reads and writes. Tailwind CSS helped me ship a calm, nature-forward UI that stays consistent across breakpoints — important for a hospitality brand where mobile browsing is common.
Technically, the hardest parts were availability logic and keeping the booking UX trustworthy. Guests need clear cabin details, pricing context, and confirmation states. I structured pages around progressive disclosure: explore first, then commit. The result is a responsive booking platform that feels production-ready — hybrid rendering for performance, secure auth for guest accounts, and a clean reservation journey from browse to booked stay.
If you are evaluating frontend work for travel or booking products, The Wild Oasis shows how I combine Next.js architecture, auth, and design systems into one coherent guest experience.
Beyond the guest-facing journey, I treated content and SEO as part of the product. Cabin detail pages need crawlable structure, descriptive headings, and media that does not destroy LCP. Hybrid rendering helped me keep marketing routes indexable while reserving client-heavy interactivity for authenticated booking screens.
I also cared about operational honesty in the UI: unavailable dates, confirmation receipts, and profile updates should never feel ambiguous. That attention to state design is what separates a booking demo from a booking product. The Wild Oasis remains one of my clearest examples of shipping a hospitality experience with Next.js, Supabase, and Tailwind working together end to end.



