Почему я отказался от Docusaurus в пользу своей платформы Cloudea Blog на Next.js, что получил и как прошла миграция.
Когда готовые решения перестают устраивать — пора писать своё.
Почти два года мой блог и вики жили на Docusaurus. Это отличный инструмент — быстрый старт, MDX из коробки, удобная структура документации. Я даже писал о нём пост.
Но со временем стали копиться ограничения: хотелось больше контроля над навигацией, кастомных компонентов, нормальной авторизации, комментариев и SEO — всего того, что в Docusaurus приходилось обходить хаками или плагинами.
Старый блог на Docusaurus по-прежнему доступен в репозитории: github.com/BazZziliuS/docusaurus.
Docusaurus — отличный инструмент, но мне хотелось большего:
Cloudea Blog — моя собственная платформа для блогов и документации, построенная на:
.mdx файлах, что и раньшеКонтент переехал практически без изменений — MDX есть и там, и тут. Основные моменты:
blog/ в content/blog/, убраны <!-- truncate -->, адаптированы пути к изображениямdocs/ в content/docs/ с сохранением структуры категорий:::tip заменён на компонент <Callout>geo_block, order), убраны специфичные для DocusaurusGeoCheck, DocCardList, Backlink заменены на встроенные аналоги или убраныВесь процесс занял один вечер. Больше всего времени ушло на отладку мелочей вроде вложенных <a> тегов в заголовках и inline-отображения shields.io бейджей.
Вся настройка сайта живёт в одном файле cloudea.config.ts:
const config: CloudeaConfig = {
title: "Cloudea Blog",
url: "https://blog.cloudea.org/",
homepage: "blog",
themeConfig: {
navbar: {
title: "Cloudea",
links: [
{
label: "Блог",
href: "/blog",
items: [
{ href: "/blog", label: "Статьи" },
{ href: "/blog/tags", label: "Теги" },
{ href: "/blog/archive", label: "Архив" },
],
},
// ...
],
},
},
};Переход с Docusaurus на собственную платформу дал мне полный контроль над каждым аспектом сайта. Да, это больше работы по поддержке, но взамен — никаких ограничений и компромиссов.
Если вас устраивает Docusaurus — используйте его, это прекрасный инструмент. Но если вы упираетесь в его границы и хотите большего — возможно, пришло время написать своё.
Исходный код платформы открыт: github.com/BazZziliuS/cloudea-blog.