Все проекты
Мультитенантная SaaS-платформаРаботает в productionКлиентские сайты в продакшене

SaaS-платформа сайтов для ресторанов доставки

Мультитенантная платформа, которая превращает общую кодовую базу в полноценные сайты электронной коммерции: владелец ресторана управляет каталогом, клиентами и подпиской, а владелец платформы — арендаторами, тарифами и биллингом. Два клиентских сайта работают в продакшене.

Админ-панель владельца сайта — дашборд
Админ-панель владельца сайта — дашборд

Проблема и цель

Запуск сайта доставки обычно требует отдельной разработки для каждого ресторана. Целью была мультитенантная SaaS-платформа, где новый бренд получает полноценный сайт — меню, корзину, зоны доставки и кабинеты клиентов — только через конфигурацию. Бренд, меню, город и условия доставки настраиваются на общей кодовой базе без отдельной сборки для каждого клиента.

Моя роль и ответственность

Я разработал продукт полностью: админ-панель владельца сайта (каталог с модификаторами, карты зон доставки, стандартные правила корзины, клиентская база, аналитика выручки и SaaS-подписка), админ-панель владельца платформы (арендаторы, тарифы, биллинг и инстансы) и мультитенантную архитектуру сайтов для компьютеров и мобильных устройств. Кабинеты клиентов работают через SMS OTP и содержат историю заказов и кешбэк.

Модули продукта

Ключевые инженерные задачи

Две админ-панели на одной кодовой базе

Владельцам сайта и платформы нужны разные интерфейсы и права доступа к одним и тем же мультитенантным данным. Я разделил продукт на два административных приложения с общим бэкендом и обеспечил изоляцию арендаторов на уровне доступа к данным.

Шаблонизация для каждого ресторана

Бренд, меню, город и условия доставки являются конфигурацией арендатора, а не кодом. Новый ресторан получает рабочий сайт без отдельной сборки — один деплой обслуживает все клиентские сайты.

Связь электронной коммерции с операциями

Сайт интегрирован с операционным кабинетом: каталогом и модификаторами, полигонами зон доставки на карте, стандартными товарами в корзине, аналитикой выручки и жизненным циклом SaaS-подписки.

Кабинеты клиентов через SMS OTP

Вход по номеру телефона связывает профиль клиента с историей заказов, кешбэком и подарками — единая учётная запись на сайте без паролей.

Технологический стек

Фронтенд

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

Бэкенд

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

Данные

  • PostgreSQL
  • Prisma
  • Redis

Инфраструктура

  • Vercel
  • Render
  • Cloudflare R2
  • SMS-провайдер