Case Study
Martha's Oliveyard
No web presence beyond Booking.com. Built an editorial villa site with bilingual SEO in two weeks.

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.