Задача - построить мультитенантную SaaS-платформу, на которой бизнес запускает интернет-магазин или каталог без написания кода. Каждый арендатор (tenant) через админ-панель на Next.js сам описывает сущности - товары, услуги, портфолио работ, статьи, заказы, отзывы - а платформа автоматически создаёт под них таблицы в PostgreSQL, REST API и интерфейс администрирования.
Вся платформа на TypeScript: Next.js (React.js) на фронтенде, Nest.js (Node.js) на бэкенде, данные в PostgreSQL и Redis.
Реализована микросервисная архитектура: админ-панель на Next.js 14 (React.js, TypeScript), API Gateway и ORM-сервис на Nest.js (Node.js), отдельный сервис обработки изображений. Ядро - динамический ORM: JSON-шаблоны хранятся в реестре и компилируются в схемы MikroORM в рантайме, создавая таблицы и эндпоинты без миграций вручную. Данные в PostgreSQL (раздельные базы под Prisma и динамический ORM), сессии и rate-limit в Redis, изображения в MinIO (S3) с авто-генерацией версий (thumb/mobile/tablet/desktop в avif/webp/jpeg) через Sharp и пер-тенантным хостингом через Cloudflare + Nginx. Авторизация посетителей через OAuth (Google/Yandex), админов - через JWT с ролевой моделью и rate-limiting. Сделаны: система отзывов с рейтингом и денормализованными агрегатами, древовидные комментарии с модерацией, заказы с автоочисткой корзины, вебхуки в Telegram/email/внутренний инбокс. Вся бизнес-логика вынесена в метаданные шаблонов - движок не содержит кода под конкретного клиента. Деплой - push в main, GitHub Actions, VPS в Docker Compose.
Работающая в production платформа: добавление поля в шаблон автоматически создаёт колонку в БД и поле в админке, новые сущности - без ручных миграций. Первый магазин (тротуарная плитка) подготовлен к запуску: каталог с фильтрами и фасетами, авто-расчёт веса/количества товара по характеристикам, отзывы и комментарии с авто-модерацией для авторизованных пользователей, оформление заказов с уведомлениями в Telegram и на email. Производительность оптимизирована (батчинг запросов, кэширование, сжатие, edge-кэш Cloudflare), безопасность усилена (изоляция тенантов, токены сервисов, защита от подделки отзывов, RFC-совместимый rate-limiting). Платформа масштабируется на новых арендаторов и индустрии без доработки ядра - за счёт шаблонов и метаданных.