Case study
Berber Stay & Berber Food
Pro-bono restructure for a family homestay and on-site restaurant in Tamri, Morocco. Two linked sites, fully CMS-editable, no backend.

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
100% of traffic to date is direct: WhatsApp shares, QR scans, word-of-mouth. No paid ads, and no organic search traffic yet (the site is new). The discovery layer is built; the audience is reaching it through real-world channels.
The problem
- Replace Airbnb-only reach with a direct discovery channel Hassan owns.
- Surface the homestay AND the kitchen AND the on-site experiences, not just 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. No HTML, no Markdown, just plain fields with clear labels.
Stack
- Astro 5
- TypeScript
- Sveltia CMS
- Cloudflare Pages
- Cloudflare Workers (auth)
- GitHub-as-database
- DocuSeal
Handoff
- GitHub repos transferred fully to the client's account.
- Cloudflare Pages projects + DNS handed off to the client's Cloudflare.
- Sveltia CMS auth via shared Cloudflare Worker, documented dependency.
- Engagement Agreement and Handoff Package PDFs signed via DocuSeal.
- Marc removed from all admin surfaces post-transfer.
See it live
The same discipline shapes the analytics work too