Перейти к содержимому
VC
Кейс · Разработка под ключ · Full-stack

Marketing-Ops Platform: десктоп → Telegram → веб

Платформа управления рекламными кампаниями для собственного перформанс-стека. Начинал в 2024 с Tkinter-десктопа для личного использования — вырос в полноценный продукт с 80+ фичами, Telegram-ботом и production web-приложением на Next.js + FastAPI с multi-user RBAC и encrypted token vault.

Тип проекта
Marketing-Ops Platform (3 интерфейса)
Стек
Next.js 14 · FastAPI · PostgreSQL · Celery
Срок
~3 месяца · 3 итерации
Масштаб
80+ фич · 3 UI · 4 интеграции API
01 · Боль

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

В медиабайинге запуск одной рекламной кампании — это 9 связанных шагов: составить нейминг (Store/Product/GEO/Buyer/Vertical), подобрать landing+offers в Keitaro, создать short-URL через Cutt.ly, прописать OG-теги, привязать Facebook Pixel и Access Token, создать пост на FB-странице, добавить комментарии-затравки.

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

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

02 · Эволюция

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

v1
DESKTOP

Tkinter native macOS app — для себя

Python + Tkinter + нативное macOS Edit-меню (Undo/Cut/Copy/Paste). Личный продуктовый инструмент: одна полная форма с авто-подбором landings/offers, валидацией, сохранением шаблонов, локальной историей в SQLite. ~2000 строк Python, paketовался в .app-bundle.

v2
TG BOT

Telegram-бот для команды — chat-based UX

aiogram 3 + FSM-state machine: пошаговый опрос всех полей через inline-кнопки. Один и тот же бизнес-логический код переиспользован из десктопа через shared-модули. Создание кампании не требует открывать ноут — байер прямо из чата с телефона.

v3
WEB APP

Production web-app с multi-user RBAC

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

Encrypted token vault на Fernet (AES-128-CBC + HMAC-SHA256) — frontend никогда не видит raw API-токены. JWT-аудит с bcrypt-паролями. Audit log каждого действия в БД. Развёрнуто через Docker compose на Vultr VPS, origin-IP скрыт за Cloudflare.

03 · Фичи

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

01 · Batch
Bulk-режим — 2-10 кампаний за раз

Editable-таблица, автонумерация постов, side-by-side прогресс-бар, results-table с success/error для каждой строки.

02 · Vault
Encrypted token vault

Fernet (AES-128-CBC + HMAC-SHA256), master-key из ENV, отдельная роль vault-admin. Токены не покидают backend.

03 · Smart suggestions
Pattern recognition по истории

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

04 · Auto-save
Draft recovery каждые 5 сек

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

05 · Alias check
Real-time uniqueness alias

Красная/зелёная рамка поля, кнопка disabled при коллизии. Auto-fix в batch (добавление -2, -3 или случайного слова).

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

Группировка по GEO/Store, quick-apply, preview перед применением, импорт/экспорт JSON, возможность поделиться шаблоном между командой.

07 · History
Полный audit-log с поиском

Action logger с timestamp на каждое изменение, поиск/фильтр (Campaign/Post/Ads/Error), date-range filter, экспорт в CSV/JSON, click-to-jump к кампании.

08 · Backup
Auto-backup каждые 30 мин

Backup manager хранит последние 10 копий локально, manual-backup кнопкой в меню, индикатор времени последнего сохранения в status-bar.

09 · Duplicate guard
Anti-duplicate detection

Warning при попытке создать кампанию с теми же Store+Product+GEO как у существующей, side-by-side compare с предыдущей версией.

10 · Shortcuts
macOS-native клавиатура

Cmd+1/2/3 переключение табов, Cmd+N новая кампания, Cmd+H история, Cmd+Q quick-actions panel. Полная клавиатурная навигация.

Это только топ-10 из ~80 фич. Полный feature-list (toast notifications, inline validation, smart empty states, status bar с online indicator, quick-actions floating panel, repeat-last-campaign, copy-last-Cutt.ly, sessions с пересохранением, editable batch table, multi-campaign session, performance hints на основе истории, etc.) — предоставлю на созвоне с архитектурными деталями.

04 · Стек

Production-grade технологии

Frontend (v3)
  • Next.js 14 (App Router)
  • React 18 + TypeScript
  • Tailwind CSS + shadcn/ui
  • Radix UI primitives
  • react-hook-form + Zod валидация
  • Sonner для toast-уведомлений
Backend (v3)
  • FastAPI 0.115 (async)
  • SQLAlchemy 2 async + Alembic migrations
  • Pydantic v2 для всех схем
  • JWT (jose, HS256, 24h TTL)
  • bcrypt для паролей
  • Fernet (AES + HMAC) для vault
Data / queues
  • PostgreSQL 16 (pgcrypto, uuid-ossp)
  • Celery 5 для async tasks
  • Redis 7 для broker + cache
  • SQLite (десктоп / Telegram-версии)
Deploy / infra
  • Docker compose, multi-service
  • Nginx (TLS, security headers, source-map blocking)
  • Cloudflare DNS/CDN, origin-IP скрыт
  • Vultr VPS, Ubuntu 22.04
  • Let's Encrypt SSL automation
Desktop (v1)
  • Python 3 + Tkinter
  • Native macOS Edit-меню
  • SQLite для локальной БД
  • py2app для .app-bundle
Telegram (v2)
  • aiogram 3 (async)
  • FSM state machine
  • inline-кнопки + callback handlers
Integrations
  • Keitaro API (campaigns, landings, offers)
  • Facebook Graph API (posts, comments, pages)
  • Cutt.ly API (short URLs)
  • Webhook handlers для статусов
Quality
  • Pytest для backend
  • Audit-log таблица в БД
  • Централизованный ErrorHandler
  • Структурированное логирование
05 · Результат

Что изменилось в воркфлоу

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

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

Batch-режим
1 2–10

кампаний за один прогон с editable-таблицей и индивидуальной настройкой

Реализованных фич
80+

через 10 фаз итеративной разработки от MVP до production-SaaS

Системный эффект: платформа стала единым source-of-truth для всех рекламных запусков команды. Telegram-бот для байеров в дороге, web-app для офисной работы и team-collaboration, десктоп для тех, кто предпочитает native macOS. Все три используют один и тот же код для бизнес-логики и одну общую базу данных кампаний/шаблонов/токенов.

Урок для клиентских проектов: правильная архитектура (separation of concerns, shared business logic, multi-frontend) позволяет добавить новый интерфейс — мобильное приложение, Slack-интеграция, голосовой ассистент — за неделю, не переписывая backend.

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

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

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

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