/// case study 026
Web
Project 026

Cloud Pavilion

A quiet, image-led marketing site for a high-touch travel operator selling itineraries, not seat inventory — Destinations, Journeys, Atelier, Journal, and a WhatsApp-led Inquire flow. Every page exists in English, French, Arabic and Chinese off a single [locale] route tree with typed JSON dictionaries (~620 keys each) and proper Arabic RTL. Astro 5 static build with Lenis + GSAP smooth-scroll motion, an hreflang-correct i18n sitemap, and phone-first imagery that survives 9:16 screens. One config dual-hosts to GitHub Pages and Vercel.

Cloud Pavilion — screenshot
EN · FR · AR · ZH
Locales
~620 per locale
i18n keys
Pages + Vercel
Hosting
Web
Category
The Problem

What Wasn't Working

A bespoke-travel house needed an editorial site that mirrors how consultative travel is actually sold — itineraries and enquiries, not carts — serving French, Arabic and Chinese readers as first-class audiences.

The Solution

How I Fixed It

One Astro 5 [locale] route tree localizes every page into four languages from typed JSON dictionaries, with a persistent WhatsApp funnel, restrained Lenis + GSAP scroll motion, and a config that ships the same build to GitHub Pages and Vercel.

Stack

Technologies Used

Astro 5
TypeScript
Tailwind 4
GSAP
Lenis
Results

Key Outcomes

Four fully-translated locales with full right-to-left Arabic via per-locale dir token
hreflang-correct i18n sitemap for per-locale search indexing
Dual-host deploys from a single astro.config.mjs
Phone-first media pipeline with entropy-cropped portrait hero imagery

Want something like this?

Let's build it. I ship fast and I ship clean.