3.7 KiB
3.7 KiB
content-pipeline
Оркестратор контентного конвейера + CMS-слой для управления публикациями.
Не CMS как таковая, а развитие editor-pro + GEO через более глубкую интеграцию.
Что это
Гибрид двух слоёв в едином UI:
┌─────────────────────────────────────────┐
│ UI-панель (один экран) │
├─────────────────────────────────────────┤
│ 1. Pipeline-оркестратор │ ← управление конвейером
│ (editor-pro → GEO → публикация) │ запуск, статус, ретрай
│ │
│ 2. CMS-слой │ ← удобная правка
│ (список статей / редактор / │ BlockNote + превью
│ превью / публикации) │
├─────────────────────────────────────────┤
│ FastAPI-оркестратор на 9876 │
│ (уже есть для SEO-проектов) │
└─────────────────────────────────────────┘
Архитектура
Единая модель данных (src/types.ts)
Один объект «статья» используют оба слоя:
slug,title,body— базовые поляutm— UTM-теги для персонализации herogeo— GEO-мета (сущности, ключевые запросы)status— draft / in-review / published / archivededitorProTaskId— связь с editor-pro
Валидация и slugify — единые для обоих слоёв (никакого дублирования).
Pipeline-оркестратор (src/pipeline.ts)
Шаги: generate (editor-pro) → optimize (GEO) → publish.
- Запуск конвейера для списка статей
- Статусы шагов (pending/running/success/failed)
- Ретрай до 3 раз при ошибке (экспоненциальный backoff)
- Делегирует тяжёлую работу шагам (не выполняет сам)
Хранилище (src/store.ts)
Единый источник данных для обоих слоёв:
- CRUD статей
- Фильтрация по статусу (для CMS)
- Поиск по заголовку/тексту
- В MVP — in-memory Map; в прода — SQLite/Postgres (тот же интерфейс)
Почему не форк CMS
Готовые CMS (AstroAdmin, astro-cms, EmDash) — CRUD для контента, не pipeline-оркестратор. Они не знают про editor-pro, GEO, UTM-теги. Им пришлось бы писать слой адаптации — свой слой проще и точнее.
Roadmap
- FastAPI-оркестратор (9876) — запуск pipeline
- SQLite-репозиторий вместо in-memory
- Блок-редактор (BlockNote/TipTap) для CMS-слоя
- Превью через iframe dev-сервера
- Привязка к deploy-пайплайну (rsync на хостинг)
- Статусы pipeline в UI (отслеживание задач)
License
Приватный. Концепт: развитие editor-pro + GEO.