Boutique-villa booking site that keeps every reservation off Airbnb — $691–$845 per booking back in the host's pocket.
OBJECTIVES
PROJECT TYPE
Website
Boutique-villa booking site we shipped end-to-end on ourselves before pointing the same recipe at client work.
15-MINUTE INTRO CALL
OVERVIEW
Boutique-villa booking site we shipped end-to-end on ourselves before pointing the same recipe at client work. Cinematic editorial layout, native Stripe Checkout direct to the host, host-editable content. Live at /demo/luxe-stays — same studio, same five-day cadence, ships for you next.
THE PROBLEM
Boutique villa operators were losing 18-22% of every reservation to OTA commissions, and the OTA owned the guest. Custom direct-booking sites usually run $25K+ over 6-10 weeks — the math doesn't work for a single property doing six bookings a month.
CONSTRAINTS
DELIVERABLES
Editorial single-property site: hero, suites, story, gallery, journal, location, FAQ, contact, press.
Booking widget — date pickers, guest count, suite selection, pricing breakdown, native Stripe Checkout.
Mobile-first sticky booking bar that opens the full widget in a modal sheet.
Host-editable content surface for rooms, rates, photos, and copy.
Cancellation, confirmation, and post-booking flow.
KEY DECISIONS
Editorial cinematic layout or Airbnb-style listing card?
Editorial cinematic. Magazine-cover photo, Playfair italic title, deed-line meta caps. The booking widget gets its own moment, not bolted onto the photograph.
Boutique guests pay $480+/night because the property is curated. Listing-card aesthetics signal 'commodity rental' — the wrong category for a $3,840-per-week stay. The site's job is to communicate why the rate is the rate.
Native booking flow or embed an OTA-style booking widget?
Native flow on Stripe Checkout. The reservation lands directly in the host's Stripe account.
Embedded widgets carry their own chrome, their own checkout step, their own URL — and they take a cut. Native Stripe means the host owns the funds the second the guest taps Reserve, with no platform-of-record between them.
Inline booking widget on mobile, or sticky bottom bar?
Sticky bottom bar that opens the full widget in a modal sheet. Booking is one tap from anywhere on the page.
On a 390-wide phone an inline widget would push the editorial photo down the page and break the magazine-cover beat. The sticky bar keeps the photography full-bleed and surfaces booking from the first scroll.
OUTCOMES
$691–$845
OTA commission saved · per reservation
Per a $3,840 reservation, vs Airbnb's 18-22% take. After ~5 direct bookings the site has paid for itself.
5 days
Kickoff to live URL
Full editorial site, native booking flow, and host CMS shipped in five business days.
99 / 100 / 100
Lighthouse · home page
Performance / Accessibility / Best Practices on the home page, measured on a throttled 4G connection.
<60s
Checkout completion
From hitting Reserve to a Stripe-confirmed booking. Single screen, no account creation, Apple Pay / Google Pay supported.
TIMELINE
Brand voice, suite inventory, photography brief, booking-flow spec, content map.
Editorial layout, booking flow, native Stripe Checkout, host content surface, mobile booking sheet.
Editorial photography (43 shots: six suites, gallery, story, journal, location), copy pass, FAQ + policies.
Performance pass, accessibility pass, mobile-sheet polish, live URL on Vercel.
Book a 15-minute call about your project.