A luxury hotel & resort template built with Next.js and Sanity: video hero, parallax photography, booking search with availability, and a working contact form.








Single project license · lifetime updates
Check-in, check-out, adults and children on the hero and Rooms page. Rooms that fit show first with the stay total; the rest say why they're unavailable.
Booking requests by email out of the box, or deep-link "Book now" to any booking engine with the guest's search pre-filled. One setting, no code.
Per room: max adults, max children, total guests, minimum stay and unavailable date ranges. Requests are re-checked on the server before they're sent.
A full-screen background video with a photo fallback, plus an optional booking bar. Pauses for visitors who prefer reduced motion.
Full-width photo banners and split image sections drift gently as you scroll, powered by GSAP ScrollTrigger and Lenis smooth scrolling.
Large hero with price card, photo pair, capacity icons, amenity checklist, sticky booking panel with live total, and "browse all rooms" to keep guests exploring.
Full documentation included — a step-by-step guide from download to deployed.
Grab the zip from your account, unzip it and open the folder in your terminal.
One command pulls in Next.js, Sanity, Tailwind and everything else.

Book a free 30-minute call. We'll review your current site and send a fixed-price plan. No pressure, no pitch.
Contact, booking request and newsletter forms send email through Resend. Add your API key and inbox address to the env file and you're live. Spam honeypot, validation and friendly error messages included.
Editorial blog with cover images, rich text, side-by-side images, newsletter sign-up, category filter and share buttons.
Rating cards with source, stars, photo and stay details, in an elegant staggered grid.
Hero, page title, intro statement, highlights carousel, accordion, text & photo, numbers, photo banner, rooms, services grid, guest reviews, journal posts, gallery and contact form. Build any page in the Studio.
Portrait photo grid with a keyboard-friendly lightbox.
Pinned home page and site settings, plain-English field descriptions, image hotspots, required alt text and section previews.
Static generation with one-minute refresh, Sanity image CDN with blur placeholders, metadata and Open Graph per page, sitemap and robots.
Mobile-first layouts, full-screen mobile menu, semantic headings, labelled forms, keyboard support and reduced-motion support.
Colours, type scale and layout widths live in one Tailwind v4 theme, so rebranding takes minutes.
A detailed `CLAUDE.md` documents every section, route and convention, so Claude Code can build new sections from your Figma designs.
Home · Experiences · Rooms & Villas · Room detail (×6 demo) · Services · Journal · Journal post (×6 demo) · Gallery · Contact · 404
Copy the example env file and add your Sanity project ID and dataset.
Preview locally, then ship to Vercel, Netlify or Cloudflare — settings are pre-configured.
# 1. Download & open the projectcd my-template # 2. Install dependenciesnpm install # 3. Configure environmentcp .env.example .env.local# then add your Sanity project ID # 4. Run locally, then deploynpm run devnpm run build