grafsoul.com - это мой личный сайт и вместе с тем двуязычная контент-платформа, где уживаются портфолио и эксперименты, длинные технические книги и статьи, разделы о моих интересах - кино, сериалы, музыка, книги - и лента новостей отрасли. Я собрал его вместе с Claude, и страница, которую вы читаете прямо сейчас, живёт как раз внутри этой системы.
Всё управляется из CMS
Сердце сайта - headless CMS Payload на Postgres, работающая под капотом Next.js, и почти всё здесь устроено как данные, а не как захардкоженные страницы. Разделы заводятся, переименовываются, прячутся, сортируются и перекрашиваются прямо из административной панели, без единой правки кода: динамический роут сам строит страницу под тип раздела, будь то лента проектов, книги или лента новостей. Весь контент набран на Lexical rich text и полностью локализован.
Не просто портфолио
Это не сайт-визитка, а несколько разных продуктов под одной крышей. Портфолио и эксперименты - вот эти карточки и страницы, которые вы сейчас видите. Отдельный и немалый пласт - книги: полноценные двуязычные технические книги и конспекты, где главы, код и диаграммы расставлены прямо по тексту, а не свалены в конец. Разделы об интересах устроены так же тщательно - кино и сериалы, музыка с плеерами и обложками, книги с указанием авторов. А ещё есть лента новостей отрасли, которая наполняется автоматически по расписанию. У каждого раздела своя внутренняя логика, но оболочка у всех общая.
Двуязычность и контент-пайплайн
Весь сайт живёт на двух языках: у каждого поля есть русская и английская версия, и вместе с локалью переключаются интерфейс и SEO. Отдельно продуман сам выпуск контента - я готовлю материал в локальной базе, вычитываю его, а затем точечно публикую на прод по REST API: по одной книге, статье или проекту за раз, идемпотентно и без выката всей базы целиком. Именно так на прод приехала и эта карточка.
