July 2026

Client project

Restaurant website

A traditional Moroccan restaurant in Casablanca

A site for a Moroccan breakfast and traditional cuisine restaurant, in Arabic, French and English, with the menu, the gallery and the ways to reach them. Built as a static export so it loads quickly on a phone over mobile data.

Built with
Next.js with next-intl for the three languages and a fully static export, with right-to-left handled properly for Arabic.
What was tested
Three complete locales (Arabic, French and English), each with its own route and its own content file, not machine-translated at runtime.

How it fits together

  1. Visitor Arabic, French or English
  2. Locale route next-intl, right-to-left
  3. Static pages Next.js export
  4. Call or WhatsApp one tap

The problem

The restaurant’s customers are local and Arabic-speaking, its neighbourhood has French speakers, and visitors searching in English find nothing. One language would have excluded a real part of the audience, and the usual fix, a translation widget over an English page, reads badly in Arabic and does nothing for search.

What I built

Three real locales with their own URLs and their own message files, so each language is a page in its own right rather than a translation layer. Arabic runs right-to-left throughout, not as a mirrored afterthought. The site covers the menu, the weekly specials, a gallery, and direct call and WhatsApp actions.

It is a static export, which for a restaurant site is the right shape: nothing on the page needs a server, and it can be hosted anywhere for nothing.

Hard decisions

Separate content files rather than a CMS. The menu changes with the weekly specials, not daily. A CMS would have been a service to maintain and pay for so that a handful of lines could be edited a few times a month.

What I would do next

The weekly specials are the part that goes stale, and editing a content file is not something the owner should have to do. That single section is the one thing worth putting behind an editor.