Files
zeropost-tool/ROADMAP.md
T
Nik (Claude) 2e550d2993 feat: photo-search, system settings, ROADMAP
- PhotoSearchModal: Yandex photo-search с профилями доменов
- SystemSettings: управление app_settings (admin-only, /system)
- ROADMAP.md: актуальный план фич P1-P10
- Header, ChannelView, session: поддержка is_admin
2026-06-07 14:04:14 +03:00

9.4 KiB
Raw Blame History

ZeroPost — Roadmap (план фич)

Живой документ. Обновлять по мере выполнения. Последнее обновление: 2026-06-01


Контекст / архитектура

  • zeropost.ru (web) — блог + админка. PM2 zeropost-web (pm_id=5, порт 3042), /var/www/zeropost-web.
  • app.zeropost.ru (tool) — SaaS для управления каналами TG/VK/MAX. PM2 zeropost-tool (pm_id=4, порт 3041), /var/www/zeropost-tool.
  • engine — общий движок API + LLM-pipeline. PM2 zeropost-engine (pm_id=3, порт 3030), /var/www/zeropost-engine.
  • БД: PostgreSQL, db=zeropost.
  • Cron: */10 * * * * zeropost-autogen.sh, * * * * * zeropost-publish-scheduled.sh (обе очереди).
  • Internal secret: zeropost_internal_2026. TG-прокси: CF Worker в app_settings.TELEGRAM_API_BASE.

DONE

Photo-search (Yandex)

  • user_posts.image_credit (JSONB), users.is_admin (BOOLEAN).
  • Engine: proxy /api/photo-search/*. Tool: /system (admin-only), PhotoSearchModal.
  • Web: категория photo_search скрыта из blog-админки.

Auto-publish статей блога → каналы

  • channels.auto_publish_{enabled,categories,delay_min,template,with_cover,button_text,image_source}.
  • Engine: articleAutoPublish.js, scheduledPostsRunner.js, /api/scheduled-posts/*.
  • Хук в PATCH/POST articles при draft→published. Typeahead /api/articles/admin/search.
  • Cron обновлён — дёргает обе очереди (user_posts + scheduled_posts).
  • Web: ArticlePicker, AutoPublishTab, 4 вкладки в ChannelEditor.

Журнальная главная страница zeropost.ru

  • Engine: /api/articles/home (hero / byCategory / popular / recent).
  • Web: CategoryRow, PopularBlock, RecentBlock (группировка Сегодня/Вчера/Эта неделя).
  • ArticleCard с 3 размерами (hero/regular/compact) + цветной category badge без дублей.
  • Header упрощён (2 пункта desktop + расширенное мобильное меню).

Персонаж Зеро

  • 15 поз: avatar, coding, tools, lock, gears, eureka, confused, facepalm, victory, tired, reading, magnifier, chart, meditate, present/var/www/zeropost-uploads/zero-{name}.webp.
  • src/services/zeroCharacter.js — выбор позы по тексту/категории статьи (эмоциональные триггеры + категорийные).
  • channels.auto_publish_image_source = 'alternating' — чётные посты = AI-обложка, нечётные = Зеро.
  • scheduledPostsRunner — multipart upload (не URL) чтобы CF Worker не падал.

Промпт Зеро

  • src/services/promptBuilder.js — секция author_persona в buildArticleSystemPrompt.
  • src/services/articles.jsblogChannel.author_persona (голос, правила, запрещённые фразы).
  • Статьи теперь пишутся от первого лица с личными историями.

TG-канал @zeropostru — запуск

  • Welcome-пост от Зеро с аватаром + кнопкой (msg_id=13, закреплён).
  • 4 статьи опубликованы (по одной на каждую категорию), режим alternating.

zeropost.ru — страница Зеро + TG-продвижение

  • /about/zero — страница с описанием персонажа + галерея 8 поз.
  • Footer — TG-банер с аватаром Зеро на каждой странице.
  • Конец каждой статьи — блок «Понравилась заметка? → В канал».
  • /about — ссылка «Познакомьтесь с Зеро».

🚀 ПЛАН: что делать дальше

СЕЙЧАС (не отложить)

A. Revoke бота — токен @zeropostru_bot засветился в этом чате. Зайди в @BotFather → /mybots → выбери бота → API Token → Revoke. Потом обнови в /admin/channels/1 → Настройки → Bot Token.

B. Статья на Habr — главный бесплатный способ получить первые 200-500 живых читателей. Тема: «Я сделал блог, который ведёт ИИ с персонажем-маскотом. Как работает pipeline». Напишу черновик — дай команду.


app.zeropost.ru — приоритетный порядок

P1. Календарь публикаций (1–2 дня)

Самый частый запрос у SMM-инструментов. Без него непонятно «что когда выходит».

  • Страница /calendar — визуальная сетка (неделя + месяц).
  • Данные: user_posts.scheduled_at + publish_slots канала.
  • Карточки по цветам: draft=серый, scheduled=синий, published=зелёный, failed=красный.
  • Drag & drop между датами → PATCH scheduled_at.
  • Фильтр по каналу.

P2. Превью под платформу (0.5–1 день)

Сейчас пишешь пост и не знаешь как он будет выглядеть.

  • Компонент PostPreview в ChannelView справа от textarea.
  • Рендерит Markdown как TG: жирный, курсив, обрезка caption 1024, превью ссылки.
  • Переключатель TG / VK / MAX — разные ограничения форматирования.

P3. Шаблоны постов (0.5 дня)

Ускоряет создание поста в 3 раза.

  • 7 кнопок-пресетов: Новость, Анонс, Кейс, Лонгрид, Подборка, Опрос-разбор, Личное мнение.
  • Каждый — готовая структура поста + hint для AI.
  • В ChannelView рядом с кнопкой «Идеи тем».

P4. Аналитика постов (2–3 дня)

Без метрик невозможно понять что заходит.

  • Таблица post_metrics(user_post_id, captured_at, views, forwards, reactions JSONB).
  • Воркер раз в 15 мин: пуллит views через TG embed для постов < 7 дней.
  • В ChannelView у каждого поста — строчка «👁 N ↗ N ❤️ N».
  • График: «лучший день/час для публикации» по медиане views.

P5. URL → черновик (1–2 дня)

Killer feature которой нет у конкурентов в таком качестве.

  • Вставил ссылку → AI читает статью/YouTube/TG-пост → пишет пост в стиле канала.
  • POST /api/generate/from-url. Для статей: cheerio + og-meta. Для YouTube: yt-dlp транскрипт.

P6. Комментарии + AI-ответы (4–7 дней)

Большая фича, отдельный спринт.

  • TG webhook → unified inbox.
  • Классификатор haiku: вопрос/спам/похвала/троллинг.
  • Предложенный AI-ответ с кнопкой «отправить».

P7–P10. Опросы, хештеги, best-time, URL-shortener

По 0.5–1 дню каждое, делаем после P1–P5.


zeropost.ru — мелкий должок

Задача Срочность
Revoke бота @zeropostru_bot 🔴 СЕЙЧАС
Статья на Habr про ZeroPost 🟠 На этой неделе
Кнопка «Бэкфилл статей» в AutoPublishTab 🟡 Низкая
История публикаций канала 🟡 Низкая
Балансы внешних сервисов в /system 🟡 Низкая

zeropost.ru — рост аудитории (без бюджета)

Действие Ожидаемый результат Когда
Habr: «Как я сделал AI-блог с маскотом» 200500 переходов На этой неделе
vc.ru: то же самое 100300 переходов На этой неделе
5 комментариев в AI-чатах TG 2050 подписчиков Постоянно
Взаимный пиар с 3 каналами (tgstat.ru) 50150 подписчиков 12 недели
Reddit r/artificial 50200 переходов На этой неделе
SEO (органика) Долгосрочно Само, 23 мес

Технический долг

  • ENGINE_URL default в lib/engine.js tool'а = 3040, должен быть 3030.
  • per_day в autogen_settings не используется в логике (только run_hour:run_minute).
  • TOPIC_BANK заканчивается — нужен AI-генератор новых тем.
  • VK: публикация без фото (нужен 2-step photos.getWallUploadServer).
  • MAX: заглушка throw new Error('не реализована').

Не делаем

  • Холст / визуальный редактор.
  • Stories / Reels.
  • Команда / роли (до 5+ клиентов).
  • White Label.
  • Парсинг конкурентов через MTProto.