Как я выбирала движок под ферму блогов. Часть 2: Hugo, Jekyll и почему Astro
Думала, что возьму готовый шаблон. Пара дней кода и можно запускать... но все пошло не по плану...
Саммари:
Maugli Content Farms - это автоматизированная ИИ-редакция для создания качественного контента в различных форматах и каналах.
Автоматический парсинг и скоринг контента
Создание контента с соблюдением брендинга
Контроль качества человеком
Автоматическая публикация
Итак, уже рассказала, что nоcode-платформы не подошли под задачи полностью самостоятельной ИИ-редакции. Значит придется пару дней посидеть с кодом — выберу готовый шаблон, доработаю под свои задачи, и можно запускать.
Спойлер: про пару дней — это было наивно.
Пришло время посмотреть в сторону serverless фреймворков.
Напомню, что цель — не «красивый блог», а заготовка под контент-ферму, которую ведет редакция ИИ с полной автоматизацией: боты пишут, человек утверждает, публикации летят сами.
Претендентов был всего 3: Astro, Hugo, Jekyll. Все они Netlify-friendly. То есть: вечно-бесплатные блоги, публикующие контент, как только новый пост в виде .md файла попадет на github из ИИ-редакции. Осталось определиться.
Критерии отбора:
легкий порог входа,
быстрый старт,
нормальный внешний вид и необходимый функционал,
рынок специалистов для дальнейшего делегирования.
Выбор очевиден — Astro
Быстрый вход. Я — управленец, с техническим бэкграундом, мне важно понимать код. Я пишу код в голосовом режиме. Говорю как мне надо: логику, архитектуру, стек — пишет ИИ. Без понимания и контроля ч моей стороны боты-кодеры могут навести хоть и работающий снаружи. но полный треш из костылей внутри, который в последствии будет больно масштабировать. Потому важно быстро разобраться со стеком.. С Astro за вечер разобралась. С Hugo/Jekyll так не выйдет. Даже при том условии, что когда-то оба изучала. Но на минималках.
Проще и дешевле делегировать код в дальнейшем. Любой фронт, знающий React врубится за час-два. Найти «джуна на поддержку» быстрее и дешевле, чем спеца по Hugo/Jekyll.
Гибкость без админок. ИИ-редакция пишет в Markdown, дальше всё автоматом: структуры, SEO, публикация. Нужны интерактивные блоки? — легко. В Hugo/Jekyll —чистая статика.
Кастомизация — простая. Компоненты, темы, типографика — всё ок, без боли.
(Техничка для зануд: Astro поддерживает MDX и «острова» — это значит, можно вставлять компоненты — любые — хоть React, хоть Vue, хоть любые другие фреймворки. И все это может быть в одном проекте. )
Честно про «ложку дёгтя»
Картинки. Родной компонент <Image> в Astro любит картинки, импортированные из исходников, а не из «паблика». Когда мы разделили «ферму» и «ульи» (клиентские блоги), это сломалось. Решила просто: написан свой компонент изображений — и забыли проблему.
Полный ребилд. При новом посте Astro пересобирает весь сайт. То есть если постов тысячи. - это не секунды. Но собирают боты, не люди, потому — ОК. Плюс размазываем нагрузку: не один монструозный блог с частотой публикаций 100 в день, а 100 блогов по 1 посту в день. Не только из-за билдов: если 1 автор будет выдавать по 100 постов в день — и у нейронок и у людей возникнут вопросы — а не боты ли это?
Спойлер: Да, боты. И тут ,. на демо-витрине Maugli, скрывать было бы глупо. Однако, для ферм и клиентских проектов — эта информация будет лишней.
Масштаб и здравый смысл
Сколько писать? Боты могут выдать десятки статей за час. Но читает и утверждает всё равно человек. Как минимум на этапе дообучения каждой фермы. Разделяя блоги, можно назначить каждому блогу своего Human-in-line-редактора. Идеальный ритм: 1 автор = 1 статья в день, или реже. Надо больше — добавляем авторов/блоги. Именно поэтому быстрое развертывание большого количества блогов важнейший фактор.
Netlify. На бесплатном тарифе ограничения по деплоям — терпимо. Для ферм берём платный — и забыли.
Мультиязычность. Интерфейсы уже локализованы на 8 языков (Английский, Русский, Испанский, Французский, Португальский, Китайский, Японский, Немецкий — до топ-10 самых популярных не хватает хинди и арабского + RTL ). В новом блоге при инициализации в одном месте выбираем язык — и погнали. Это подключает правильный типограф, язык блога, локализует все компоненты.
Контент по языкам — в разных блогах (это разные аудитории, нужен не тупой перевод, а другой автор — каждый смысл должен быть не только переведен но и адаптирован под особенности менталитета ). При этом Maugli предусматривает, что каждый блог можно линковать между собой. Но это не локализация. Это скорее, edition — как у Bloomberg. Да, работает на ботах. Но по образу и подобию сильнейших мировых редакций.
Как устроен пайплайн Maugli
Без админок и ручной рутины
Боты делают черновики → Человек утверждает в Telegram (если надо — отправляет на доработки или правит 2-3. слова сам, если так быстрее). Кроме того, для дообучения нейронок, есть возможность оценить полученный от ботов материал при утверждении.
Фичеринг: у человека-редактора — есть кнопка. Если пост хочется закрепить, при утверждении ставим соответствующую галку, Но дабы избежать длинной простыни закрепленных постов и не плодить отдельного бота под этот процесс, в витрине держим только 3 материала. Как только новый пост с отметкой “Закреплено” публикуется, он вытесняет, самый старый. Если максимум закрепления достигнут.
Источник правды — Airtable (удобно для правок), метаданные фермы — Supabase.
Публикация идёт через GitHub → Netlify по крону.
JSON-LD, который так любят поисковики и ИИ собран автоматически.
Графика к посту создается также “дизайн-командой ИИ” на постпродакшне.
PWA включён. Продукты и кейсы — отдельные сущности, всё лишнее можно отключить → получится блог «одного автора».
Для этих целей выиграл Астро. Но у каждого из претендентов есть свои плюсы:
Сравнение функционала Astro, Hugo и Jekyll
Что важно
Astro
Hugo
Jekyll
Старт
За вечер можно въехать и запустить
Нужна насмотренность по шаблонам
Медленнее, руби-окружение
Найм и поддержка
Дешевле: море React-фронтов
Реже встречаются спецы
Есть, но стек олдскул
Масштабирование
Легко плодитьмного блогов
Можно, но «темизация» жёстче
Можно, но смысла мало
Автопубликации
Идеально под Git-поток и ботов
Тоже можно, но сетап сложнее
Можно, но тормознее
Мультиязык
Решаемо, локали уже есть
Лучшее встроенное i18n
Плагинами
Время сборки
Полный ребилд (нас не парит)
Очень быстрый билд
Самый медленный
Вывод: под задачи ИИ-редакции лучше всего подошел Astro. Баланс скорости запуска, стоимости поддержки и гибкости.
Для «сверхскоростных» порталов без интерактива — выиграет Hugo.
Для визиток на GitHub Pages — Jekyll.
Почему просто взять и адаптировать шаблон — не получилось (хотя очень хотелось)?
Такая попытка сначала и была. Выбрала очень простую тему Dante. Запустила. Поняла что нужны доработки. Получила вот этот тестовый вариант. Но мне надо больше функционала и лучше адаптацию под SEO:
Для фермы, где агенты работают самостоятельно (после глубокой ручной настройки, разумеется) важна максимальная автоматизация. В том числе и по централизованным доработкам. Даже 2-3 блога апдейтить по отдельности — зло. А если 100+?
Быстрое развертывание каждого нового блога.
UX — заточен под ИИ: который и пишет, и читает . Постинг руками — удобнее где-то в другом месте.
SEO и GPT-SEO. Делается автоматом. Но как часть редакции, а не часть шаблона блога. Потому если хотите Maugli-шаблон выбрать из-за этой фичи, но писать руками, то чуда не произойдет. Потому что шаблон — лишь платформа для ИИ-редакции. Но не сама редакция.
А встроить в свою автоматизацию или полуавтоматизацию (например, ,банальный agent chatGPT) — легко. Для тех, кто умеет.
На выходе получился Maugli FREE BLOG. В том виде, в котором он есть сейчас.
Вы тоже можете его использовать бесплатно.
Кому зайдет Maugli FREE BLOG и кому он точно не нужен
Maugli разочарует тех, кто:
ожидает писать в Maugli, как в Medium или в Дзен из коробки, только на своем домене и с авто-SEO.
Кто оценит Maugli:
автоматизаторы, лоу-кодеры, нейро-энтузиасты, которые хотят свой блог с минимальной болью
создатели сетки афилиатных блогов
агенства, которым надо разворачивать и автоматизировать клиентские блоги пачками
SEO с длиннохвостыми ключевиками
Да, базовая версия — с лейблами Maugli. Но есть WhiteLabel PRO. Без подписки — единоразовая оплата. Снятие лейбла — навсегда. Возможно, это ограниченное предложение…пока не решила.
Факт на десерт: шаблон запилен полностью в голосовом режиме. Команды выполняли KODEX и Copilot. Я лишь подсказывала им решения, и следила , чтобы они не факапили, раздувая архитектурно “как им удобнее”.
В заключении немного жалоб на собственную наивность:
Ожидания: “Возьму готовый шаблон — пара дней и запускаю платформу.”
Реальность: Да, разобраться и адаптировать Dante - заняло пару дней. После чего довольная ушла в упаковку. Но, когда пришло время запускать блог Maugli — поняла, что:
без масштабирования — будет больно на каждом новом блоге
тема слишком скромна и скудна. Это. годно для “ИИ-персон, ведущих личный блог”, но не для брендов и бизнеса
Итого почти месяц доработок. Из которых 2 недели выкинуты на глобальный факап. Но как без них? О факапе, как-нибкдь в другой раз.