All projects

Aviora Estates

Design-led booking site for an owner-managed luxury villa

Role
Client project — design and build
Period
2026
Status
Live in production

Problem

An owner-managed luxury villa near Noida needed a public presence that could take genuine booking enquiries without becoming a booking platform. The owner reviews every stay personally, so an instant-confirmation checkout would have made a promise the business does not keep.

Solution

A statically generated marketing site that presents the estate properly and routes every stay request through WhatsApp to the owner, carrying the dates and guest count already selected. The site collects the intent; a person makes the decision.

What I built

  • A responsive multi-page marketing site with a property detail page covering gallery, amenities, pricing and nearby locations.
  • A booking request flow with a client-side date-range picker and guest count that hands off to WhatsApp with the selection preserved.
  • A contact enquiry form and a waitlist modal for properties not yet released.
  • Dark mode, plus SEO metadata, sitemap, robots and structured data.
  • Trust-first content covering owner review, refund policy, ID verification and the security deposit.

Architecture

Statically generated Next.js on Vercel with no backend and no database in the delivered scope. Every page is prerendered; the only dynamic behaviour is client-side date selection, which composes a WhatsApp deep link rather than posting anywhere.

Tech stack

  • Next.js 15 (App Router, static generation)
  • React 19
  • TypeScript 5.7 (strict)
  • Tailwind CSS
  • Framer Motion
  • GSAP
  • react-day-picker
  • next-themes
  • Vercel

Key technical decisions

No payment processing, deliberately

Instant online payment would have implied instant confirmation, which the owner-review model does not offer. Keeping money out of the flow kept the site honest about how booking actually works, and removed PCI scope entirely.

No guest data stored on a backend

Requests hand off to WhatsApp instead of being persisted. For a single-property site this removed the entire class of obligations that come with holding personal data, and removed the backend that would have needed maintaining after handover.

Static generation over server rendering

The content changes rarely and the traffic is marketing traffic. Prerendering everything gave the fastest possible page loads and a site that cannot break at request time.

Documented handover

The project ships with deployment, DNS and SSL notes plus a separated brand asset folder, so the client is not dependent on the original developer to redeploy or hand the site to someone else.

Challenges

Communicating trust without a transaction

A luxury stay booked over WhatsApp needs to feel more credible than one booked through a payment form, not less. The answer was content rather than code: stating the owner-review process, refund policy, ID verification and deposit explicitly on the page instead of burying them in terms.

Preserving selection across the handoff

The date range and guest count are chosen on the site but the conversation continues in WhatsApp. The request is composed into the deep link so the guest never re-types what they just selected and the owner receives a structured enquiry rather than 'is it available?'.

Outcome

Live in production at avioraestates.com with the booking enquiry flow, contact form and waitlist in use, handed over with deployment and DNS documentation.

Interview talking points

  • When the right architecture is the one with no backend — and how to tell.
  • Designing a conversion flow around a human approval step rather than around a checkout.
  • Scoping a client project so the deliverable stays maintainable after handover.
  • Why deferred features (iCal availability sync) were left as documented roadmap rather than half-built.