WORK 06 · Featured
Порталы и платформы · Продукт to-nets.ru · разработка платформы
Тунец: GEO-платформа для попадания в ответы нейросетей
GEO to-nets.ru: v1→v2→v3, видимость, завод, КП, отчёты, задачи, MCP.
Роль: Архитектура и полная разработка с нуля
- 1.5 месдо рабочего MVP
- 5+AI-провайдеров
- с нулякод и архитектура
- монетыбиллинг по этапам
Задача
Клиенты в топе классического поиска не попадают в источники нейросетей, а ручной прогон ключей по нескольким AI съедает дни. Нужна была не «ещё одна админка», а огромная рабочая платформа под повторяемую GEO-услугу.
Результат
Продакшен: v1/v2/v3, factory (5 стадий), visibility hub, report builder, budget-calculator, tasks/automation, indexes, Тупик, public tools, MCP tunec_*. Десятки часов рутины сжимаются до часов с платформой.
- Django
- Celery
- PostgreSQL
- Redis
- Perplexity
- ChatGPT
- YandexGPT
- Gemini
- GigaChat
Потребность, которую закрыл код
Сделать GEO измеримым и масштабируемым: не копипаст по ChatGPT и Perplexity, а продакшен-портал под повторяемую агентскую услугу.
«Тунец» на to-nets.ru — монолит Django-приложения voice. Продуктовую рамку сформулировал Роман (разрыв между топом в поиске и цитированием в нейросетях) — Хабр. Моя роль — архитектор и разработчик платформы целиком: ниже — инвентарь того, что реально живёт в коде, а не пересказ статьи.
MVP за ~1.5 месяца закрыл критичный контур: URL + запросы → ответы нейросетей → нормализованные источники. Дальше вокруг ядра вырос полный GEO-SaaS: wizard, видимость, завод, КП, отчёты, задачи, индекс, размещение, публичные tools и MCP — с очередями Celery, prepaid-монетами и изоляцией провайдеров.
- Per-provider сервисы: ChatGPT, Gemini, Claude, DeepSeek, GigaChat, Yandex, Perplexity…
- JSONField: сырые ответы рядом с нормализованными сущностями
- Архитектура важнее скорости генерации кода
Три UI: v1 → v2 → v3
Classic Bootstrap, затем рабочий v2 (wizard/factory/visibility), затем beta-hub v3 — на одном доменном ядре.
v1 — классический кабинет: проекты, запросы, площадки, контент-план, тексты, индекс. v2 — основной продакшен: /v2/*, wizard на 10 шагов, visibility hub, контент-завод, отчёты, задачи, калькулятор КП; переключение use_new_ui. v3 — beta-hub (use_v3_ui): проекты, видимость, завод, калькулятор, отчёты, задачи, MCP; часть экранов — оболочка над v2.
Менялись оболочки и навигация, а не «переписывали всё». Задачи в БД, монеты, статусы провайдеров и контракты модулей остались позвоночником — иначе каждый редизайн обнулял бы историю прогонов и оплату.
- v1 — classic Bootstrap-кабинет
- v2 — wizard + factory + visibility (основной)
- v3 — hub/beta с MCP в глобальной навигации
Wizard: 10 шагов услуги
От проекта до индексации: страницы, конкуренты, запросы, позиции, AI-площадки, темы, ТЗ, текст, публикация, индекс — плюс trial-онбординг.
Wizard — операционный скелет агентской услуги, не «демо из трёх кликов». Шаги 1–8 собирают данные и контент; шаг 9 — размещение через интеграцию Тупик; шаг 10 — индексация и пересъём видимости. Есть отдельный trial-поток с урезанным онбордингом для входа в продукт.
Параллельно живут контент-планы, брифы, тексты, услуги/эксперты для E-E-A-T в ТЗ. Автозадания (AutomatedTaskConfig) умеют гонять visibility_scan, content/factory pipeline, positions_check, article_indexing_monitor — услуга не держится на ручном F5.
- Шаги 1–8: проект → запросы → позиции → AI → темы → ТЗ → текст
- Шаг 9: размещение (Тупик)
- Шаг 10: индексация + пересъём visibility
- Trial-wizard и автоматические джобы пайплайна
Видимость: полный контур
Не один график: обзор, динамика, матрица, Share of Voice, конкуренты, план работ, снимок и «где разместить».
Модуль /v2/visibility/ — центр GEO-измеримости. Матрица и SoV показывают присутствие в ответах нейросетей; конкуренты и запросы — где выигрываете и проигрываете; «План работ» переводит сигналы в рекомендации; «Снимок» фиксирует состояние с export; placement отвечает «куда нести материал».
Нормализация Sources, пересечения доменов между сетями, учёт недоступности страниц для AI-краулеров (robots/Cloudflare/JS) — иначе аналитика врёт, а команда правит текст, который модель не читает. Кэш снимков режет повторный дорогой collect.
- Обзор / динамика / матрица / Share of Voice
- Конкуренты и поисковые запросы
- План работ и снимок (export)
- Placement «где разместить»
Контент-завод
Пакетный конвейер: позиции → AI-видимость → темы → ТЗ → тексты; двухфазный режим awaiting_briefs.
Factory (/v2/factory/, в v3 — тот же контур в оболочке) — не «кнопка сгенерировать статью», а смета и CRUD scope: страницы, запросы, темы, ТЗ. Пятистадийный план гоняет тяжёлую работу через очереди; two-phase останавливается на брифах, пока аналитик не подтвердит направление.
Guide/why рядом с заводом объясняют экономику прогона. Это режим агентской нагрузки: много проектов, предсказуемый конвейер, контроль стоимости до старта.
- Стадии: позиции → видимость → темы → ТЗ → тексты
- Two-phase: awaiting_briefs
- Смета и scope завода
- Связка с калькулятором КП
Калькулятор КП и монеты
КП (якорь/осколки, UGC), handoff в завод, prepaid-монеты, счета и рефералка.
Budget-calculator собирает коммерческое предложение и умеет передать объём в завод — мост между продажей услуги и исполнением. Публичная версия калькулятора греет воронку без полного кабинета.
Prepaid-монеты списываются по этапам (сканы, нейросети, Wordstat/LSI, позиции, пакеты тем, ТЗ). Счета, пополнение, 3DS, рефералка и промо — операционка денег рядом с пайплайном, не «потом прикрутим биллинг».
- Калькулятор КП + public-вариант
- Handoff сметы в контент-завод
- Монеты, invoices, пополнение
- Рефералка и промо-коды
Отчёты и задачи
Конструктор отчётов (20+ блоков), PDF/share-link; канбан задач и automated jobs.
Report builder собирает блоки из видимости, плана работ, контента, SEO и задач — шаблоны, PDF/screenshot, публичная ссылка /v2/reports/share/…. Клиент получает артефакт услуги, а не «успешный JSON в логе».
Задачи (/v2/tasks/): канбан, backlog, archive, constructor, quick-start и автоматические джобы, привязанные к factory/visibility/indexing. Операционный слой держит команду в ритме прогонов между сменами UI.
- Конструктор отчётов и share-link
- Реестр блоков visibility / work_plan / content / SEO / tasks
- Канбан и конструктор задач
- Automated: visibility_scan, factory_pipeline, indexing_monitor…
Проект, участники, бюджеты
B2B/агентский контур: members, роли, лимиты бюджета на участника — не «личный кабинет одного SEO».
У проекта — участники с ролями и per-member budget. Уведомления, счета, рефералка замыкают операционку услуги. Это превращает сканер видимости в платформу, на которой агентство ведёт клиентов.
Staff-контур feedback в v3 и админка провайдерских балансов — поддержка и контроль COGS рядом с продуктом, не вне его.
- Участники проекта и роли
- Лимиты бюджета на member
- Уведомления, счета, рефералка
- Админка балансов провайдеров / feedback
Размещение, индекс, качество
Тупик для публикации, модуль indexes, Text.ru и Тургенев — после аналитики материал доводят до факта в сети.
Шаг 9 wizard и связанные контуры публикуют через Тупик (API, image packs, токен-аккаунты) — это не абстрактный «publish». Модуль /indexes/ отдельно проверяет индексацию (история, compare, CSV), плюс шаг 10 переснимает visibility после появления в индексе.
Качество текста: Text.ru и Тургенев на статьях завода/wizard. Позиции и Wordstat (в т.ч. Arsenkin) остаются классическим контуром рядом с GEO — оба нужны вместе.
- Размещение через Тупик
- Модуль индексации + шаг 10 wizard
- Text.ru / Тургенев
- Позиции / Wordstat рядом с GEO
Публичные tools и MCP
Fan-out, answer-check, ai-bots без логина; MCP tunec_* — тот же продукт для агентов.
Хаб /tools/: fanout, проверка ответов, AI-bots — lead-магниты с лимитами и async-прогонами (CSV/ТЗ export). Они греют воронку, не открывая чужой workspace.
MCP (POST /mcp/server, UI в v3): Bearer-токены и tools tunec_* — проект, запросы, позиции, visibility, factory, budget, publish, indexing, prompts. Агентский контур параллелен UI с теми же правилами статусов и денег: estimate/charge-дисциплина, не «тихий жор» API.
- /tools/fanout, answer-check, ai-bots
- MCP server + /v3/mcp/ UI
- tunec_*: visibility, factory, budget, publish, indexing…
- Изоляция публичных tools от прод-кабинета
Итог
Итог
Роман описал продуктовую дыру GEO; я закрыл её инженерией — от MVP источников до продакшен-портала с тремя UI, видимостью, заводом, КП, отчётами, задачами, Тупиком, индексом, /tools/ и MCP.
«Тунец» в портфолио — как с нуля собрать сложный AI/SEO SaaS под реальную агентскую услугу: измеримость и процесс вместо обещания лотереи в ChatGPT.
Request this case
Соберём архитектуру под вашу задачу
Вакансии не рассматриваю. Создаю галеру. Лично — консультации и проектирование. Форм на сайте нет — пишите в Telegram или на почту.