Case study
Berber Stay & Berber Food
Pro-bono restructure for a family homestay and on-site restaurant in Tamri, Morocco. Two linked sites, every section editable in a CMS, served as static pages.

Hassan runs a family homestay and on-site restaurant in Tamri, on Morocco's Atlantic coast north of Agadir. Three meals a day from the family farm. Surf, dunes, and Paradise Valley within a short drive. For years, the entire discovery layer for this (homestay, food, and a half-dozen experiences) was a single Airbnb listing. Everything else was invisible until guests were already on the property.
Visitors
748
in 7 days
Sites shipped
2
linked, brand-consistent
CMS collections
10
client-editable
Backend
$0
static + CMS, no servers
In the first 7 days, the 748 visitors arrived through WhatsApp shares, QR scans, and word of mouth, with no paid ads.
The Problem
- Replace Airbnb-only reach with a direct discovery channel Hassan owns.
- Surface the homestay, the kitchen, and the on-site experiences alongside the room.
- No backend, no payment gateway, no recurring infra cost beyond a domain.
- Owner edits prices, packages, and content without breaking anything.
- Every CTA must work on a slow 3G phone in Morocco.
What Was Built
- Two linked sites: homestay (berberstay.com) and on-site restaurant (food.berberstay.com), brand-consistent.
- WhatsApp-first booking. Reservations, pre-orders, and arrival notifications route directly into Hassan's WhatsApp with full context (dates, guests, line items, season) pre-filled.
- 3-tier seasonal pricing engine, arrival-month aware, fully CMS-editable.
- 10 CMS collections: pricing, packages, activities, gallery, all page content. Hassan edits without touching code.
- Moroccan earth-tone brand system, lazy images, slow-3G friendly. SEO essentials (sitemap, OG tags, branded 404) included.
- On-location photography, Tamri.
In Use
The pieces of the system, as guests and as Hassan see them.

berberstay.com, the homestay site.

food.berberstay.com, the on-site restaurant as its own brand.

Direct WhatsApp booking sits next to the existing Airbnb path: both honoured, neither hidden.

Seasonal pricing applied automatically: Low/Mid/High Season swap without code.

Arrival timing widget: pre-fills a WhatsApp message with full context, no app install required.

10 CMS collections covering every page Hassan can change.

Per-section edit form: plain fields with clear labels.
Stack
- Astro 4
- TypeScript
- Sveltia CMS
- Cloudflare Pages
- Cloudflare Workers (auth)
- GitHub-as-database
Handoff
- Sveltia CMS auth via shared Cloudflare Worker, documented dependency.
- Plain-language handover guides written for the staff who edit the sites.