Mohamed BardouniProduct Engineer

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
Bastaoui Parfums: A Trilingual Storefront that Checks Out on WhatsApp

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 live storefront is published and can be browsed: switch between its three languages and follow the order flow as far as the WhatsApp handoff.

Check the public source
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 today is a storefront only.

Need something similar?

Send me the problem, the users, and the expected scope.