Skip to content
All work
// Case studyWeb platformlive

Stravo

Bilingual restaurant ordering & delivery — loyalty ledger, delivery-zone geofencing, dual-build.

2025 MENA Food ordering & delivery
E-commerce & marketplacesOn-demand & delivery
Build something similar
Stravo — Bilingual restaurant ordering & delivery — loyalty ledger, delivery-zone geofencing, dual-build.

// By the numbers

2
Products from one build

customer storefront and admin dashboard — one codebase, two deployments

4 rewards
Repeat-order engine

points-based loyalty ledger that brings customers back

Geofenced
Delivery accuracy

map-based zone detection — orders only where delivery is possible

AR · EN
Bilingual storefront

full RTL — every customer ordered to in their own language

// Overview

A bilingual restaurant ordering and delivery platform with a customer storefront and an admin dashboard — live order tracking, map-based delivery-zone detection, and a points-based loyalty system. One codebase compiles into two independent, zero-overlap deployments.

// Architecture

How it's put together

01Client applications

Customer Storefront

Menu · cart · checkout · tracking

Admin Dashboard

Orders · menu · zones · loyalty

02Build layer

Dual Build

One codebase → two zero-overlap bundles

03Backend & data

Managed Backend

Auth · row-level security · server-side pricing

Relational Database

Append-only loyalty ledger

Maps

Delivery-zone geofencing

A single codebase tree-shaken into two independent deployments.

// Highlights

Signature capabilities

01

Loyalty ledger

An append-only points ledger with server-authoritative redemption, per-customer locking to prevent double-spend, idempotent earning, and automatic refunds on cancellation.

02

Dual-build architecture

One environment flag tree-shakes the codebase into two zero-overlap bundles — the storefront ships no admin code and vice versa.

03

Delivery-zone geofencing

Customer coordinates resolve to the correct zone, fee and minimum order using distance math computed directly in the database.

04

Server-authoritative pricing

All prices are re-fetched server-side at order time; the client never controls totals.

05

Live order tracking

An auto-refreshing status timeline from pending through delivered, with a copyable order reference.

06

Bilingual & RTL

English and Arabic with dynamic direction switching and a persisted language preference.

// Features

Business feature set

The functional scope delivered across every part of the product.

Customer storefront

  • Menu browsing by category
  • Debounced search (incl. Arabic)
  • Product detail & recommendations
  • Cart drawer
  • Today's offers
  • Delivery or pickup checkout
  • Map-based delivery pin
  • Delivery-zone detection
  • Live order tracking
  • Order history

Admin dashboard

  • Orders management
  • Menu & category CRUD
  • Offers & promotions
  • Delivery-zone editor
  • Business settings (hours, tax, channels)
  • Loyalty rewards manager & analytics

Loyalty & rewards

  • Append-only points ledger
  • Four reward types
  • Configurable earn rate
  • Auto refunds on cancellation
  • Server-authoritative redemption
// My role

What I owned

End-to-end on this project — from architecture and data modelling through to a shipped, production product.

  • Full-stack architecture & data modeling
  • Loyalty ledger with concurrency-safe redemption
  • Dual-build storefront + admin from one codebase
  • Delivery-zone geofencing & server-side pricing
  • Row-level security & dual authentication
  • Bilingual English/Arabic with full RTL
// Stack

Built with

Frontend

ReactTypeScriptVite

Backend

Managed PostgresRow-level security

Maps

Geofencing

Infrastructure

Vercel

// Gallery

// Makhloof Studio

Want something like Stravo?

Boutique software studio — agency-quality systems, shipped by one senior engineer.

Start a project
WhatsApp