Case Study

Martha's Oliveyard

No web presence beyond Booking.com. Built an editorial villa site with bilingual SEO in two weeks.

ViteReactTailwind
Visit live site
marthasoliveyard.com
Martha's Oliveyard screenshot

The Problem

Martha's Oliveyard is a vacation rental nestled among eleven olive trees on the Croatian coast. The property had listings on Booking.com and Airbnb but no standalone web presence - no place to tell its own story, control the brand, or let potential guests reach out directly.

There was no existing website, no brand assets beyond a logo concept, and no technical infrastructure. The brief was simple: make it beautiful, make it fast, make it work on phones.

The Solution

I designed and built a single-page application with an editorial Mediterranean aesthetic - think boutique hotel, not generic vacation listing. The site features full-bleed professional photography, scroll-reveal animations, and a carefully tuned olive-and-sand color palette that evolved through client collaboration.

The contact form includes a custom date picker for check-in/check-out, guest count selection, and dual-layer anti-spam (honeypot field + minimum submission time) - validated on both client and server. On the backend, PHPMailer handles SMTP delivery since the hosting provider disables PHP's native mail() function.

For bilingual support, I implemented a multi-page Vite build: two HTML entry points (/ for English, /hr/ for Croatian) sharing a single React bundle. Each language gets its own SEO metadata, Open Graph tags, and hreflang declarations.

Tech Decisions

Vite + React + Tailwind over a CMS or page builder. The client needed a polished result without ongoing maintenance complexity - no WordPress updates, no plugin conflicts, no database to manage.

Shared hosting (Apache/PHP) over a serverless backend. The contact form needed SMTP authentication, and the client's hosting provider already included email. A custom Python FTP deploy script handles production uploads, while Vercel auto-deploys from git pushes for staging.

Multi-page build over client-side i18n routing. Separate HTML files mean proper SEO per language without hydration trade-offs or flash-of-wrong-language. A simple toggle triggers a sub-second full reload - no routing library needed.

Two deploy pipelines. Vercel auto-deploys every push for fast client review cycles. Production goes through a scripted FTP upload to the shared host.

The Result

~210 KB JavaScript bundle, sub-second page loads, fully responsive from 320px to ultrawide. Complete bilingual SEO with per-language metadata, hreflang tags, and Open Graph. Working contact form with SMTP delivery and anti-spam. Two-week turnaround from first line of code to live on a custom domain with SSL. The result is a property website that feels like a destination in itself - not a template with swapped photos, but a purpose-built experience that matches the character of the place it represents.

Have a problem worth solving?

Let's talk about what you need and see if I can help.

Book a free call