// коммерческий проект · 6 месяцев
Аналитика Wildberries
Веб-сервис для управления рекламой на маркетплейсе Wildberries. Собирает данные через официальный API, показывает статистику по кампаниям, рассчитывает метрики. Проект разрабатывался как онлайн-сервис для продавцов, но заказчик сменил направление бизнеса до запуска.
// процесс разработки
Я проектирую, Claude Code реализует
Архитектура, выбор технологий, решение нетривиальных проблем - моя зона. Claude Code берёт на себя рутину: написание кода по спецификации, тесты, рефакторинг. По сути это следующий уровень абстракции - вместо написания каждой строки я фокусируюсь на системе в целом.
Мой пайплайн
Настроил систему из 8 субагентов со строгими правилами: TDD-кодер, QA-валидатор, документатор, SRE-монитор. Каждый работает по инструкциям, которые я задал.
Контроль на каждом этапе
Код проходит обязательные фазы: тесты → реализация → QA → документация. Я проверяю результат и принимаю решение о деплое.
Фокус на архитектуре
Рутинная реализация делегирована - время уходит на проектирование системы, интеграции, отладку сложных сценариев.
Актуальная документация
Агенты подтягивают документацию библиотек через MCP-сервер, не полагаясь на устаревшие знания из обучающих данных.
// задача
От таблиц к веб-сервису
Аналитика работала через n8n и Google Sheets - для старта это было достаточно, но бизнес вырос и потребовался полноценный сервис. Я написал его с нуля: фронтенд на React, бэкенд на FastAPI, данные в PostgreSQL. Полное ночное обновление всех данных занимает 25 минут, внутридневные обновления - менее 4 минут.
Дашборд: кампании с метриками, фильтры, сортировка
Статистика кампании: разбивка по дням
Подключение: загрузка данных из WB API
// интерфейс
Дашборд с 17 рекламными метриками
Основной экран - таблица рекламных кампаний. Для каждой кампании показываются расход, показы, клики, конверсии, стоимость заказа и ещё десяток метрик. Можно фильтровать по датам, статусу, типу кампании. Каждую строку можно раскрыть и увидеть разбивку по товарам.
Управление кампаниями
Запуск, пауза, пополнение бюджета - прямо из интерфейса, без захода в кабинет WB.
Статистика по дням
Детальная страница кампании: агрегированные данные за период и разбивка по каждому дню.
Гибкая фильтрация
По датам (пресеты + произвольный период), статусу, типу кампании, конкретному товару.
Настройка колонок
Можно выбрать какие метрики показывать и в каком порядке. Настройки сохраняются.
// под капотом
37 фоновых задач и умный сборщик данных
Данные обновляются автоматически: ночью - полная синхронизация за 90 дней (22 задачи, ~25 минут), днём - обновления каждые 30–60 минут (13 задач, ~4 минуты). Подключение нового продавца с загрузкой всей истории - ~43 минуты. Ни одной ошибки ограничения частоты запросов за всё время работы.
Ограничения API
Встроенный контроль частоты запросов: от 1 до 300 запросов в минуту в зависимости от типа данных. Автоматические повторы при ошибках.
Шифрование токенов
API-ключи продавцов хранятся в зашифрованном виде. Расшифровываются только в момент запроса.
База данных
50 таблиц в PostgreSQL, 43 миграции. Заказы, продажи, рекламные кампании, остатки, отзывы, поставки.
Уведомления
Telegram-бот для алертов: ошибки API, статус синхронизации, проблемы с токенами продавцов.
// инфраструктура
5 контейнеров, автодеплой
Сервис работал на VPS в пяти Docker-контейнерах: фронтенд (Next.js), бэкенд (FastAPI), обработчик фоновых задач, PostgreSQL и Redis. Деплой автоматический - при каждом обновлении кода через Coolify. SSL-сертификаты обновляются автоматически.