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
- Visitor Arabic, French or English
- Locale route next-intl, right-to-left
- Static pages Next.js export
- 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.