Bastaoui Parfums: A Trilingual Storefront that Checks Out on WhatsApp
A storefront for a Moroccan perfume brand: a catalogue, product pages, and an order flow that ends in a prefilled WhatsApp message instead of a checkout page.
Next.js 14TailwindGSAPi18n

Context
A small brand that already sells over WhatsApp. Adding a payment gateway would have added fees, verification, and failure modes to a sales path that already worked. And the customer here reads Arabic, Darija, or English — and Darija is not a mechanical translation of Arabic.
Scope I disclose publicly
- A Next.js 14 App Router storefront, with the language in the path and text direction resolved on the server per locale.
- Three separate dictionaries — Arabic, Darija, and English — rather than two with one derived from the other.
- A product catalogue written as TypeScript data inside the repository: no database and no CMS.
- An order flow that collects details in the browser, then opens a WhatsApp message prefilled with the order.
- One reusable reveal component wrapping the scroll animation, instead of motion written per page.
- An asset-path helper that applies the deployment prefix, because the image optimiser does not apply it behind a reverse proxy on a sub-path.
Decisions and trade-offs
- No payment gateway: the sale already happens on WhatsApp, so the product carries the customer there instead of building a checkout nobody asked for.
- Darija as a full locale, not an option derived from Arabic.
- A catalogue in code, which suits ten fixed products better than a full content system would.
- One motion behaviour defined in one component, so it stays consistent across the site and changes in one place.
- The explicit trade-off: any product change needs a code change and a deploy — fine for a fixed catalogue, expensive if it grows.
The storefront was published and could be browsed in its three languages, with the order flow running as far as the WhatsApp handoff. The demo has since been taken offline, so I show no public link: what is offered here is a technical description of what I built, not a link you cannot check.
Disclosure: I publish no sales or order figures. I also do not present an admin panel for this project: one was specified and never built, and the site was a storefront only.
