All projects
Multi-tenant SaaSIn productionLive client sites

Storefront SaaS for delivery restaurants

A multi-tenant platform that turns a shared codebase into full e-commerce storefronts: the restaurant owner manages catalog, customers, and subscription; the platform owner manages tenants, tariffs, and billing. Two client sites run live in production.

Site owner admin — dashboard
Site owner admin — dashboard

Problem & goal

Launching a delivery website normally means custom development for every restaurant. The goal was a multi-tenant SaaS where a new brand gets a complete storefront — menu, cart, delivery zones, customer accounts — by configuration alone: brand, menu, city, and delivery terms are set up on shared code, with no per-client build.

My role & ownership

I built the product end to end: the site owner admin (catalog with modifiers, delivery zone maps, default cart rules, customer base, revenue analytics, SaaS subscription), the platform owner admin (tenants, tariffs, billing, instances), and the multi-tenant storefront architecture for desktop and mobile. Customer accounts work through SMS OTP with order history and cashback.

Product modules

Key engineering challenges

Two admin planes on one codebase

The site owner and the platform owner need different UX and different permissions over the same multi-tenant data. I split the product into two admin applications with a shared backend, keeping tenant boundaries enforced at the data-access layer.

Templating per restaurant

Brand, menu, city, and delivery terms are tenant configuration, not code. A new restaurant gets a working storefront without a separate build — the same deployment serves every client site.

E-commerce tied to operations

The storefront is wired to the operational cabinet: catalog and modifiers, delivery zone polygons on a map, default cart items, revenue analytics, and the SaaS subscription lifecycle.

Customer accounts via SMS OTP

Phone-based sign-in links a customer profile to order history, cashback, and gifts — one account across the storefront without passwords.

Technology stack

Frontend

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Zustand
  • TanStack Query
  • React Hook Form
  • Zod

Backend

  • Node.js
  • Fastify
  • REST API
  • WebSocket
  • JWT + RBAC

Data

  • PostgreSQL
  • Prisma
  • Redis

Infrastructure

  • Vercel
  • Render
  • Cloudflare R2
  • SMS provider