Skip to main content
All Projects
Web Application

Al Dandashi Restaurant — Digital Menu & CMS (Tripoli, Lebanon)

An Arabic-first digital menu with a built-in CMS for Al Dandashi Restaurant, an offal and charcoal-grill restaurant in Al-Tall, Tripoli. The whole menu sits on the home page, with a sticky category rail and scroll-spy, prices in Lebanese pounds, a map, and one-tap calls and WhatsApp. The owner manages categories, dishes, prices, photos, hours and contact details from a JWT-protected admin panel. Each save refreshes the affected pages and purges the nginx and Cloudflare caches, so changes go live right away. It's built with Next.js 15 and SQLite, with photos on Cloudflare R2 compressed to WebP by sharp. GitHub Actions builds it on Linux and ships only the standalone output to a VPS. LocalBusiness structured data with exact coordinates targets local searches in Tripoli.

Al Dandashi Restaurant — Digital Menu & CMS (Tripoli, Lebanon) project screenshot

Al Dandashi Restaurant serves offal plates, fatteh, Tripoli-style kibbeh and charcoal grills in Al-Tall, in the heart of Tripoli. This project gives the restaurant a fast, Arabic-first menu that the owner can update from their phone.

Stack

Built on Next.js 15 (App Router) with TypeScript and Tailwind CSS, and a local SQLite database (libSQL, WAL mode) kept outside the deploy directory so a release can never wipe the menu. Photos go to Cloudflare R2, compressed to WebP with sharp on upload and keyed by UUID so their URLs never change.

The menu is the home page

Every category and dish is on a single page, with a sticky category rail and scroll-spy, opening status, a map, and one-tap calling and WhatsApp. Prices use explicit comma formatting so 700,000 never reads as a fraction on a Lebanese price list.

Built-in CMS

A JWT-protected admin panel manages categories, dishes, prices, photos, hours and contact details. Each save revalidates the affected pages and purges both the nginx cache and Cloudflare's edge.

Delivery pipeline

GitHub Actions builds on Linux, which the native libSQL and sharp binaries require, and ships only the standalone output to the VPS. The server holds no source code, and pages are regenerated after each deploy.

Highlights

  • Arabic-first, RTL by default, with an English toggle
  • Owner-run CMS with instant nginx + Cloudflare cache purging
  • Whole menu on one page with a sticky category rail
  • LocalBusiness structured data with exact geo coordinates
  • WebP-only images and capped font weights for slow mobile connections

More web application work