Asia/Makassar). The design is warm and quiet:
limestone paper, jungle green and a single terracotta accent, with every
nightly rate shown.
Live demo
Source code
Deploy to Vercel
Build it with AI

Bali Villa Rentals — the storefront on desktop and mobile, demo brand Lumbung Sidemen

Homepage hero — a flyover of the valley with a price pin on every villa
Nightly stays
Guests pick a villa, then a check-in and a check-out date on a calendar that reads the villa’s live availability. Booked nights are struck through, and the calendar stops the check-out date at the next booking. Guests (adults, children, infants), arrival time, flight number and the occasion are collected in the same flow. Extras such as an airport transfer or a floating breakfast are added once per stay. The total is always nights × nightly rate + extras, the same maths the engine charges.
Reserve — stay dates, guests and arrival details, extras and a running total
The stay model
This is the part worth copying even if you never ship this template. It uses existing Opencals features only.{ fromDate: '2026-11-14', fromTime: '07:00:00', toDate: '2026-11-17', toTime: '03:00:00' }
(UTC+8): three nights, priced as three units, three × the nightly rate.
Give each villa its own product rather than a variant: variants don’t block each
other, so the same villa could be booked twice.
What’s inside

Villas — all ten houses, with collection filters and a search by dates and guests

Villa page — gallery, rooms and amenities next to the booking calendar

Site map — find each house on the terraces

My trips — the next stay with its dates, nights and arrival details

Trip page — check-in from 15:00, check-out by 11:00, guests, extras, payment, and buttons to change dates or cancel

Mobile — the villa page at phone size
Get started
Clone and install
Add your API key
villa_resort). It seeds the ten villas on a 24/7 schedule with fixed
check-in and check-out, collections, extras, checkout questions and sample
stays. Then grab a Storefront API key (see Authentication)
and set OPENCALS_API_KEY and AUTH_SECRET in .env.local.Run it
Deploy
Origin.
Leave allowed origins empty on the key you give this template, or those
calls are rejected.{storefrontBaseUrl}/link/{token}, so if it still
points at localhost those emailed links go nowhere.Make it yours
MIT-licensed: rebrand it, restructure it, or use it for client work. Business settings live inlib/site-config.ts: name, currency and timezone, check-in and
check-out times, the longest stay, the cancellation window, arrival times,
occasions and contact details. Per-villa rooms, story, amenities and minimum
nights are in lib/villa-content.ts. Every colour and font is a Tailwind v4
@theme token in app/globals.css:
rentals-multi-day reference with the full pattern, including nightly stays.