Skip to content
FR
All projects
Work in progress

Maizal

Own restaurant platform replacing a Wix site: public web, structured digital menu and a Spanish admin.

Overview

Website and admin for Maizal, a homemade Mexican restaurant in Levallois-Perret, moving it off Wix onto its own platform. Astro 7 SSR on Cloudflare Workers with D1, R2, KV and Images; React islands for the admin and the group-enquiry form; a structured menu with complex prices and availability; promotions, events and enquiries; and an SEO-safe migration of the old Wix URLs.

Key technical specs

  • Astro 7 SSR on Cloudflare Workers with D1 (28 tables, Drizzle migrations), R2, KV and Images.
  • Tenant-ready by design: the server resolves the restaurant from trusted domain config — the browser never picks it.
  • Admin behind Cloudflare Access (RS256 JWT checked in middleware and again in every handler), same-origin + __Host- CSRF cookies on every mutation.
  • Enquiry form protected by Turnstile, a honeypot and a 5-per-minute per-IP rate limit; per-page hashed CSP with frame-ancestors 'none'.
  • SEO-safe Wix migration: 301s for legacy URLs plus Restaurant, Menu and Event JSON-LD, a dynamic sitemap and noindex outside production.
  • Four environments (local, preview, staging, production); photos pre-generated as AVIF / WebP; immutable caching for media and assets.
  • ≈100 Vitest unit tests and ≈40 Playwright end-to-end tests on iPhone and desktop, with axe accessibility checks.

Digital menu

The menu as the centre of the mobile experience: sticky category bar (starters, lunch formulas, mains, fillings, desserts, drinks, cocktails) over the restaurant’s illustrated brand pattern.

Dish cards

Structured dishes managed from the admin: real photos, descriptions, “from” prices for variants and availability tags such as “evening only”.

Groups & events

Team meals, birthdays and private hire: an enquiry form that lands in the admin inbox, protected against spam and confirmed by email.