/ REAL ESTATE

Casa Pedro Goa

A villa that books itself, while the owner sleeps.

AstroSanity CMSFramer Motion
Casa Pedro Goa interface
0
Double-bookings since launch
0
CMS (owner-managed)
0
Page load
0
Gallery images served via CDN

01 / CONTEXT

Overview

THE CHALLENGE

The property owner was managing all enquiries via WhatsApp, manually checking availability and sending bank transfer details. This was time-consuming, error-prone, and off-putting to international guests who expected a polished booking experience.

THE SOLUTION

Built a static Astro site backed by Sanity CMS so the owner can update photos, pricing, and availability from any device. The booking widget integrates with a third-party availability calendar, and a serverless function handles enquiry routing directly to the owner's inbox.

THE OUTCOME

The owner now receives structured booking enquiries with all guest details pre-filled, has eliminated double-bookings, and can update the site's seasonal pricing without contacting a developer.

02 / WHAT IT DOES

Key features

Sanity CMS

The property owner updates photos, room descriptions, seasonal pricing, and availability windows through Sanity's GROQ-powered studio, no developer involvement needed for day-to-day changes.

Booking Enquiry Flow

A multi-step enquiry form captures guest details, stay dates, and party size. A serverless function validates, formats, and routes the enquiry to the owner's email and a Notion database.

Framer Motion Gallery

The villa photography is presented in a full-screen lightbox with smooth Framer Motion transitions. Images are served via Sanity's CDN with automatic WebP conversion.

Availability Calendar

An embeddable availability calendar syncs with the owner's bookings. Guests see blocked dates in real time before submitting an enquiry.

03 / STACK

Tech decisions

Tap any item to see why it earned a place.

04 / PROCESS

How it came together

05 / HARD PARTS

Challenges & solutions

Without a real-time reservation system, two guests could submit enquiries for the same dates simultaneously. I solved this by implementing a Notion-backed availability log that the owner updates on confirmation, and adding clear messaging to guests that enquiries are not instant reservations.

LET'S BUILD SOMETHING TOGETHER

I'm always open to discussing new projects, partnerships, or just a good idea.