1SELLER · Кейсбук 2026Кейс веб-разработки

Кейс разработки

TopReels — биржа UGC-креаторов: задания брендов, съёмка видео, модерация, выплаты и встроенное обучение

О проекте

TopReels — платформа группы 1SELLER (ООО «Первый Селлер»), где бренды размещают задания, а креаторы снимают под них видео. Полный цикл: задание → отклик → съёмка → модерация → публикация → выплата. В боевой эксплуатации (topreels.ru): 45 креаторов, более 1080 снятых видео, 19 брендов.

1. Задача

Нужна была собственная площадка для масштабного производства UGC-видео силами внешних креаторов — с прозрачными деньгами и без ручного учёта:

Готовые биржи фриланса не закрывают связку «задание бренда → проверка видео → грейдовая ставка → пакетная выплата → публикация в соцсетях бренда». Платформа разрабатывалась с нуля.

2. Архитектура решения

Монорепозиторий на pnpm + Turborepo: веб-приложение, отдельный сервер реального времени и общие пакеты. Деплой в Docker.

ПараметрЗначение
Frontend / BackendNext.js 15 (App Router, Server Actions) + React 19 + Tailwind + shadcn/ui + TanStack Query
ORM / БДDrizzle ORM (мигрировано с Prisma) + PostgreSQL (Supabase)
Реальное времяSocket.io в отдельном контейнере (чат бренд ↔ креатор)
МедиаMinIO (S3) self-hosted, раздача через nginx с кэшем
Авторизация / почтаNextAuth + Resend
ИнфраVPS, docker-compose (web / ws / minio), GitHub Actions, миграции inline-SQL

2.1. Ключевые доменные инварианты

2.2. Онбординг и обучение

Новый креатор проходит оферту, затем обязательный курс (просмотр ≥80% + квиз ≥70% + тестовое видео) и аппрув куратора — только после этого площадка открывается. Гейт защищён в двух местах: и в навигации, и в серверных экшенах. Learning Center вынесен в отдельную схему БД, плеер собственный на hls.js с HLS-ладдером качества.

3. Главная инженерная сложность

Самое сложное — деньги и доступ: баланс должен сходиться до рубля при пакетных выплатах, а машинная «ферма телефонов» — забирать видео по API, не мешая ручной модерации.

УзелРешение
КошелёкЛеджер транзакций + инвариант «баланс = Σ одобренных», защита от ухода в минус при выплате
Параллельная обработкаБлокировка видео под воркера на время (lockedBy / lockedUntil), а не статусом — нет гонок
API для фермыBearer-токены с правами в JSON, идемпотентные публикации, выдача по публичному ID

Результат

Производство UGC поставлено на поток: 45 креаторов и свыше 1080 снятых видео прошли через единый конвейер модерации и выплат, без ручного сведения балансов в Excel.

4. Эффект для бизнеса

5. Технологический стек — кратко

ПараметрЗначение
Frontend / BackendNext.js 15 + React 19
ORM / БДDrizzle + PostgreSQL (Supabase)
Реальное времяSocket.io
МедиаMinIO (S3)
Монорепоpnpm + Turborepo
ИнфраDocker Compose, GitHub Actions

Кейс подготовлен на основе технической архитектуры платформы TopReels (ООО «Первый Селлер»). Описывается инженерное решение; персональные данные креаторов и брендов не публикуются.