Мой сайт sccl.cc изначально был на Astro.
Astro - штука прикольная. Для быстрого клепания чего-нить красивого неплох, но со временем он меня начал бесить:
Тяжёлый рантайм. Чтобы собрать сайт, надо тянуть Node.js, npm, node_modules на сотню мегабайт. Для одной статики.
Сложность. Astro умеет всё: острова, ssr, эндпоинты, middleware. А у меня сайтец на три страницы: контакты, проекты, периферия, многого ненадо.
Альтернативы?
Мне попался Zine.
Zine - это SSG на Zig. Один бинарник, без зависимостей.
Шаблоны на SuperHTML - это валидный html, в который добавили темплейтинг. Никаких {{ }}, никаких Pug/Jade. Просто html с атрибутами типа :text, :if, :loop.
Контент на SuperMD - расширенный .md без необходимости лезть в html.
Процесс переезда
В целом переехать достачно просто - над переписать лэйауты с Astro на SuperHTML, перекинуть уже имеющеся скрипты. Самое муторное эт, что astro юзает свои блядские .astro файлы со своей странной смесью js и html, а SuperHTML это просто html с плюхами.
Плюшки?
Скорость. Билд за миллисекунды вместо секунд.
Простота. Нет node_modules. Нет package-lock.json. Нет сотен зависимостей. Один бинарник, папка с контентом, папка с шаблонами.
Контроль. Я знаю, что в каждой строчке сгенерированного HTML. Никакого скрытого JS, который Astro добавляет по умолчанию.
Минусы?
Zine в бете.
Документация местами бедная. Сообщество маленькое. Если что-то сломалось - ты первый, кто это заметил.
Но для личного сайта это топ.
Один бинарник, пара .smd-файлов, один лэйаут и готово.
Как мне пришлось деплоить это чудо описано в How-to-ZINE-on-CF.md.