Перейти к содержимому
VC
Кейс 23 из 28 · Разработка под ключ · полный цикл

Платформа автоматизации маркетинга: десктоп → Telegram → веб

Платформа управления рекламными кампаниями для собственных рекламных проектов. Начинал в 2024 с десктопа на Tkinter для личного использования — вырос в полноценный продукт с 80+ функциями, Telegram-ботом и рабочим веб-приложением на Next.js + FastAPI с правами доступа по ролям и шифрованным хранилищем токенов.

Тип проекта
Платформа автоматизации маркетинга (3 интерфейса)
Стек
Next.js 14 · FastAPI · PostgreSQL · Celery
Срок
~3 месяца · 3 итерации
Масштаб
80+ функций · 3 интерфейса · 4 интеграции
01 · Боль

Запуск одной кампании = 2 часа ручной работы

В закупке рекламы запуск одной кампании — это 9 связанных шагов: составить название по схеме (магазин, продукт, страна, специалист, ниша), подобрать лендинг и офферы в Keitaro, сделать короткую ссылку через Cutt.ly, прописать OG-теги, привязать Facebook Pixel и токен доступа, создать пост на странице в FB, добавить первые комментарии.

На каждом шаге легко ошибиться: имя ссылки повторяется с прошлой кампанией, не тот идентификатор пикселя, забытая UTM-метка — и учёт конверсий ломается, бюджет идёт в никуда. При запуске 5–10 рекламных наборов в день вся команда тратит больше времени на копирование и вставку, чем на работу с креативами.

Готовых решений нет: платные сервисы привязаны к одной партнёрской сети, а чужие внутренние инструменты заточены под чужие процессы. Нужен был инструмент, который понимает нашу структуру неймингов, наши интеграции и эволюционирует под потребности команды.

02 · Эволюция

Три итерации, три интерфейса

v1
DESKTOP

Приложение на Tkinter для macOS — для себя

Python, Tkinter и родное меню правки macOS (отменить, вырезать, копировать, вставить). Личный рабочий инструмент: одна форма с автоподбором лендингов и офферов, проверкой полей, сохранением шаблонов и локальной историей в SQLite. ~2000 строк на Python, собиралось в .app-пакет.

v2
TG BOT

Telegram-бот для команды — работа прямо в чате

aiogram 3 и конечный автомат состояний: пошаговый опрос всех полей кнопками прямо в переписке. Бизнес-логика переиспользована из десктопной версии через общие модули. Чтобы создать кампанию, не надо открывать ноутбук — специалист по рекламе работает прямо из чата с телефона.

v3
WEB APP

Рабочее веб-приложение с правами доступа по ролям

Полностью переписан с нуля как полноценный сервис: Next.js 14 (App Router, TypeScript, Tailwind, shadcn/ui) + FastAPI (async SQLAlchemy 2 + Pydantic v2) + PostgreSQL 16 + Celery + Redis 7.

Шифрованное хранилище токенов на Fernet (AES-128-CBC + HMAC-SHA256) — в браузер токены не попадают никогда. Вход по JWT, пароли под bcrypt. Журнал каждого действия в базе. Развёрнуто через Docker compose на сервере Vultr, адрес сервера скрыт за Cloudflare.

03 · Функции

Что внутри — топ-10 функций из 80+

01 · Пакет
Пакетный режим — 2-10 кампаний за раз

Таблица с прямым редактированием, автонумерация постов, полоса прогресса рядом с каждой строкой, итог по каждой: успех или ошибка.

02 · Хранилище
Шифрованное хранилище токенов

Fernet (AES-128-CBC + HMAC-SHA256), главный ключ в переменных окружения, отдельная роль vault-admin. Токены не выходят за пределы сервера.

03 · Подсказки
Подсказки по истории запусков

«Вы обычно используете Hershey's с Kisses», подсказки по времени («14:00 — ваше обычное время публикации»).

04 · Автосохранение
Черновик восстанавливается каждые 5 сек

Форма автосохраняется в БД. При сбое браузера/приложения — восстановление из последнего сохранения, кнопка «очистить черновик».

05 · Проверка имени
Уникальность имени проверяется сразу

Красная или зелёная рамка поля, кнопка блокируется при совпадении. В пакетном режиме имя правится само (добавляет -2, -3 или случайное слово).

06 · Шаблоны
Шаблоны с категориями

Группировка по стране и магазину, применение в одно нажатие, предпросмотр перед применением, импорт и экспорт JSON, шаблоном можно поделиться с командой.

07 · История
Полный журнал действий с поиском

Каждое изменение пишется со временем, поиск и фильтры (кампания, пост, объявления, ошибки), фильтр по датам, выгрузка в CSV или JSON, переход к кампании одним нажатием.

08 · Копии
Резервная копия каждые 30 мин

Хранятся последние 10 копий, копию можно сделать вручную кнопкой в меню, время последнего сохранения видно в строке состояния.

09 · Защита от дублей
Поиск повторов перед запуском

Предупреждение при попытке создать кампанию с тем же магазином, продуктом и страной, что у существующей; рядом показывается сравнение с прошлой версией.

10 · Горячие клавиши
Клавиатура как в macOS

Cmd+1/2/3 переключение табов, Cmd+N новая кампания, Cmd+H история, Cmd+Q панель быстрых действий. Полная навигация с клавиатуры.

Это моя личная разработка — внутренний инструмент, а не продукт на продажу. Показал тут не для того, чтобы продать эту программу, а как пример того, что я умею собирать в одиночку: продукт с тремя интерфейсами, выкладка в рабочую среду, права доступа по ролям, ~80 проработанных функций. В клиентских проектах тот же уровень внимания к деталям переношу на вашу задачу — инструменты подбираю под неё.

04 · Стек

Технологии, на которых это собрано

Клиентская часть (v3)
  • Next.js 14 (App Router)
  • React 18 + TypeScript
  • Tailwind CSS + shadcn/ui
  • Компоненты Radix UI
  • react-hook-form + Zod валидация
  • Sonner для всплывающих уведомлений
Серверная часть (v3)
  • FastAPI 0.115 (async)
  • SQLAlchemy 2 (async) и миграции Alembic
  • Pydantic v2 для всех схем
  • JWT (jose, HS256, 24h TTL)
  • bcrypt для паролей
  • Fernet (AES + HMAC) для хранилища токенов
Данные и очереди
  • PostgreSQL 16 (pgcrypto, uuid-ossp)
  • Celery 5 для фоновых задач
  • Redis 7 как брокер очередей и кэш
  • SQLite (десктоп / Telegram-версии)
Развёртывание и инфраструктура
  • Docker compose, несколько сервисов
  • Nginx (TLS, заголовки безопасности, блокировка карт исходников)
  • Cloudflare DNS/CDN, адрес сервера скрыт
  • Vultr VPS, Ubuntu 22.04
  • Автоматические сертификаты Let's Encrypt
Desktop (v1)
  • Python 3 + Tkinter
  • Родное меню правки macOS
  • SQLite для локальной БД
  • py2app для сборки .app
Telegram (v2)
  • aiogram 3 (async)
  • Конечный автомат состояний
  • Кнопки в сообщениях и обработка нажатий
Интеграции
  • Keitaro API (кампании, лендинги, офферы)
  • Facebook Graph API (посты, комментарии, страницы)
  • Cutt.ly API (короткие ссылки)
  • Приём вебхуков со статусами
Качество
  • Pytest для серверной части
  • Таблица журнала действий в базе
  • Единая обработка ошибок
  • Структурированное логирование
05 · Результат

Что изменилось в работе

Время запуска кампании
2 ч ~15 мин

8× быстрее, с гарантией отсутствия дубликатов и валидацией всех полей

Пакетный режим
1 2–10

кампаний за один прогон — каждая настраивается отдельно прямо в таблице

Сделано функций
80+

за 10 этапов — от первой рабочей версии до полноценного сервиса

Системный эффект: платформа стала единым источником данных по всем рекламным запускам команды. Telegram-бот для специалистов в дороге, веб-приложение для офисной и совместной работы, десктоп для тех, кто предпочитает приложение на macOS. Все три используют один и тот же код бизнес-логики и одну общую базу кампаний, шаблонов и токенов.

Урок для клиентских проектов: правильная архитектура (разделение ответственности, общая бизнес-логика, несколько интерфейсов поверх неё) позволяет добавить новый интерфейс — мобильное приложение, интеграцию со Slack, голосового помощника — за неделю, не переписывая серверную часть.

Готовы начать?

Аудит за 5 000 ₽ — с конкретным отчётом и сметой

Расскажу что внедрить в вашем бизнесе в первую очередь, какая будет окупаемость, и нужен ли вообще AI для вашей задачи (иногда — нет).

Или просто напишите свой вопрос — отвечу в течение 2 часов