9.9 KiB
ZeroPost — Roadmap (план фич)
Живой документ. Обновлять по мере выполнения. Последнее обновление: 2026-06-08
Контекст / архитектура
- 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.js—blogChannel.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». Напишу черновик — дай команду.
✅ СДЕЛАНО СЕГОДНЯ (08.06.2026)
- P1 Календарь: /calendar, месяц/неделя/список, drag&drop, фильтр по каналу
- P2 PostPreview: правая колонка TG/VK/MAX, счётчик символов
- P3 PostTemplates: 7 пресетов структур постов
- P4 ChannelAnalytics: вкладка аналитики, реакции, гистограммы день/час
- P5 FromUrlModal: URL→черновик (веб/YouTube/TG)
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-блог с маскотом» | 200–500 переходов | На этой неделе |
| vc.ru: то же самое | 100–300 переходов | На этой неделе |
| 5 комментариев в AI-чатах TG | 20–50 подписчиков | Постоянно |
| Взаимный пиар с 3 каналами (tgstat.ru) | 50–150 подписчиков | 1–2 недели |
| Reddit r/artificial | 50–200 переходов | На этой неделе |
| SEO (органика) | Долгосрочно | Само, 2–3 мес |
Технический долг
- ENGINE_URL default в
lib/engine.jstool'а = 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.