Назад в архив
I. Собственные продукты и фреймворквитриналид

Multi-tenant E-commerce SaaS

Мультитенантная e-commerce SaaS-платформа (DavrDev) на TypeScript: API на Elysia/Bun + 3 фронтенда на Next.js + serverless-задачи на AWS SQS/Lambda, с интеграциями платёжных шлюзов (Payme/Click/Uzum), агрегаторов доставки (Wolt/Yandex Eats/Uzum Tezkor) и POS iiko. Spec-first AI-воркфлоу: собственный in-repo парсер PRD→задачи.

Статус
активный
Период
2025-04-05 → 2026-05-01
AI-сессий
1
Стек
Языки
TypeScriptPHP
Фреймворки · Инфра
Elysia (Bun)Next.js 15Drizzle ORMAWS SQS/LambdaRedisshadcn/uiTanStack QueryZustand
§01

Обзор

  • Что это: SaaS-платформа для запуска интернет-магазинов / доставки для множества тенантов (multi-tenant). Состоит из сервисов: backend (REST API на Elysia/Bun, Postgres+Drizzle, Redis), admin (дашборд на Next.js 15), storefront (витрина на Next.js 15), order-panel (панель заказов на Next.js), jobs (воркеры AWS SQS+Lambda, локально LocalStack), laravel (+yandex_reciever — приём вебхуков Yandex), shared (общие типы). Автор в package.json — «DavrDev» (собственный продукт студии / стартап).
  • Тип / статус / роль: web-app (мультисервисный SaaS) · active · lead/solo-dominant — ~86 из 108 коммитов от пользователя (+15 под дефолтным you@example.com, вероятно тоже он); минорный вклад Bobur (PR).
  • Окно активности: 2025-04-05 → 2026-05-01 (~13 месяцев). Аккуратный git-воркфлоу: feature-ветки + Pull Request'ы (Dave93/soft_delete, Dave93/api_keys, Dave93/items_list_toolbar) — контраст с репозиториями с «мусорными сообщениями» вроде arryt.
§02

Стек

  • Языки: TypeScript (основной), PHP (laravel-сервис приёма вебхуков).
  • Фреймворки/библиотеки:
  • *Backend:* Elysia (Bun) + @elysiajs/swagger (OpenAPI), Drizzle ORM + drizzle-typebox, Postgres (postgres), ioredis (кэш), @aws-sdk/client-sqs/client-ssm (очереди/параметры), elysia-remote-dts (генерация типов API), cuid2 (id).
  • *Фронтенды (admin/storefront/order-panel):* Next.js 15 (Turbopack), shadcn/ui (Radix), Elysia Eden (типобезопасный API-клиент), TanStack Query, Zustand, React Hook Form + Zod v4, TipTap (rich-text), Leaflet + MapTiler (геокодинг/карты), @headless-tree (деревья категорий), framer-motion.
  • *Jobs:* AWS Lambda (@types/aws-lambda) + SQS + S3, Drizzle (пер-тенантные соединения), zod.
  • *Root CLI:* @anthropic-ai/sdk + openai + commander + boxen/figlet/ora/gradient-string/cli-table3 — кастомный CLI (scripts/dev.js) с командами dev/list/generate/parse-prd.
  • Инфра/деплой: Bun + Docker (docker/, LocalStack для локальных SQS/S3), деплой jobs на AWS Lambda, Next standalone (порты admin 6868, storefront 3002, backend 3000). SSM Parameter Store для секретов.
  • Данные: PostgreSQL (+PostGIS для геоданных) через Drizzle, Redis (кэш инвалидируется через jobs), S3 (presigned-загрузка).
  • Заметный тулинг: PRD-документация огромная (prd.md 139 KB, prd_tasks.md 36 KB, ROADMAP_ORDERS.md 38 KB, BACKGROUND_JOBS_IMPLEMENTATION_PLAN.md) — spec-first процесс.
§03

Что реализовано

Коммиты содержательные, через PR:

  • Скелет мультитенантного API: RBAC (Users/Roles/Permissions), организации с изоляцией данных, каталог (иерархические категории, товары, свойства), города/терминалы с геоданными, новости/баннеры, API-ключи (Bearer) + Swagger + публичный API (/api/public/v1).
  • Soft-delete повсюду (Dave93/soft_delete): deletedAt/deletedBy + восстановление для городов/организаций/терминалов/баннеров/новостей.
  • Тулбар выбора / batch-операции (Dave93/items_list_toolbar): кастомные data-таблицы с мультивыбором и тулбаром массовых действий.
  • Фоновые задачи (555c1a7): система AWS SQS+Lambda (send-email, process-image, export-data, invalidate-cache, generate-report, sync-inventory, process-order, send-notification).
  • Интеграции импорта (города/терминалы), управление остатками терминалов, рефакторинг корзины/товаров, доработки API.
  • Объём: 108 коммитов за 13 месяцев, ~86 от пользователя; дисциплина PR/feature-веток.
§04

Технические челленджи

Подтверждено через CLAUDE.md + структуру backend/src/services/{payment,aggregator,geo,iiko} + манифесты:

  • Сквозная типобезопасность между сервисами (elysia-remote-dts + Elysia Eden): бэкенд генерирует DTS, фронтенды (admin/storefront/order-panel) потребляют типизированный клиент — единый контракт без ручного дублирования типов. → Продвинутый паттерн end-to-end type-safety.
  • Serverless-инвалидация кэша (CLAUDE.md §Caching + jobs): Redis-кэш с ключами {entity}:{id} / {entity}:list:{filters}, инвалидация не напрямую, а через фоновую задачу (invalidate-cache) на SQS/Lambda — запись и инвалидация развязаны. → Зрелая архитектура кэша под нагрузку.
  • Мультитенантность с изоляцией (backend/src/services, jobs с пер-тенантными соединениями): изоляция данных по организациям, tenant-контекст через API и jobs, soft-delete. → Настоящий SaaS-инжиниринг, а не однотенантное приложение.
  • Реальные локальные интеграции (services/payment, services/aggregator, services/iiko): платёжные шлюзы Payme/Click/Uzum Bank, агрегаторы доставки Wolt/Yandex Eats/Uzum Tezkor, POS iiko/Plum — отдельный laravel-сервис yandex_reciever для вебхуков. → Знание узбекского e-com / foodtech-ландшафта.
  • Геопространственные данные (PostGIS + геокодинг Leaflet/MapTiler): зоны/терминалы с гео-запросами и выбором адреса на карте.
  • Spec-first AI-процесс (root CLI + @anthropic-ai/sdk/openai + parse-prd): собственный in-repo инструмент в духе Task-Master, парсящий огромный prd.md в задачи (prd_tasks.md). → Пользователь не просто кодит с AI — он строит AI-тулинг вокруг спецификации.
§05

AI-разработка

  • Найдено сессий: 1 (в локальной директории сессий Claude Code, subdir-форма d4e6bceb-…). Плюс собственные .claude/ и .cursor/ репозитория (использовался и Cursor).
  • Что делалось с AI: единственный транскрипт глубоко не сэмплировался, но окружение явно AI-first: CLAUDE.md как гайд для агента, огромные PRD/Roadmap-документы, in-repo parse-prd (PRD→задачи через Anthropic/OpenAI SDK). Разработка была spec-driven с AI.
  • Паттерны AI-воркфлоу: spec-first (PRD → авто-декомпозиция в задачи → реализация), CLAUDE.md как гайд для агента, связка Claude Code + Cursor. Сильный пример «AI-assisted product engineering».
§06

Достижения и метрики

  • Масштаб: 5+ сервисов (backend, 3 фронтенда, jobs) + laravel-сервис вебхуков + общие типы; 8 типов фоновых задач; публичный + admin API со Swagger.
  • Интеграции: 3 платёжные системы, 3 агрегатора доставки, 2 POS — реальный коммерческий охват.
  • Зрелость: PR-based воркфлоу, soft-delete, RBAC, мультитенантность, PostGIS, presigned S3, SSM-секреты, паритет prod/local через LocalStack.
  • Документация: ~200 KB PRD/roadmap/планов — редкая дисциплина спецификаций.
§07

Контрибьюторы

git shortlog · все ветки

  1. Dave9386
  2. Your Name15
  3. Boburt8
3 контрибьютора109 коммитов всего
Сейчас

Открыт к ролям Senior / Staff инженера и избранному фрилансу — продакшн-AI, платформы и full-stack разработка.

Связаться