wm2.dev
appKitИзбранное

App-Kit

Мультитенантная SaaS-платформа: Telegram-боты, мини-аппы и сайты из подключаемых модулей.

Автор и ведущий разработчик
backendpaymentsfrontend

01 Задача

Один тенант владеет проектами, сайтами и модулями; каждому бизнесу (магазин, бронирование, CMS, отзывы) нужны свои данные, роли и интеграции — без форка кодовой базы. Платформе требовалась строгая изоляция на уровне сайта и возможность заменить внешнюю интеграцию на свой сервис, не трогая код модулей.

02 Что сделал

Backend на Django + DRF с моделью тенантности Project → Site → Modules. Фичи поставляются как подключаемые модули (магазин/заказы, бронирование, CMS, FAQ, отзывы, прайсинг, лояльность, рассылки), а каждая внешняя зависимость спрятана за адаптером ABC + фабрика (платежи, telegram, хранилище, изображения, уведомления, авторизация) и выбирается по конфигу сайта. Per-site RBAC даёт владельцу заводить свои роли и матрицу прав granted/denied; авторизация — JWT для админов и Telegram HMAC для клиентов мини-аппа. Три Next.js-фронтенда — client-admin, platform-admin и публичный storefront — работают с одним API.

  • Мультитенантная модель Project → Site → Modules со строгой изоляцией данных по сайту
  • Фичи как подключаемые модули; внешние сервисы за адаптерами ABC + фабрика, выбор по сайту
  • Per-site RBAC: свои роли владельца + матрица прав granted/denied, авто-сид из модулей
  • Двойная авторизация — JWT для админов, Telegram HMAC для клиентов; три Next.js-фронтенда на одном API

03 Результат

Новый бизнес поднимается на общей инфраструктуре со своими изолированными данными, ролями и модулями; смена интеграции — правка конфига, а не переписывание. Архитектура зафиксирована в большом наборе ADR, поэтому логика тенантности, адаптеров и авторизации сохраняется надолго.