Динамические страницы через Strapi CMS
В Murino и Point Toksovo редакторы управляют страницами через CMS. Я связывал типы контентных блоков с компонентами интерфейса и задавал правила для пустых полей.
Личная зона ответственности
Мой вклад
Здесь перечислена выполненная мной работа в рамках задачи, а не авторство всего продукта или результат всей команды.
- Спроектировал ограниченный набор управляемых CMS-блоков для динамических страниц.
- Связал типы контента с frontend-компонентами и правилами отображения.
- Определил fallback-поведение для неизвестных блоков и неполных данных.
Задача по динамическим страницам через CMS
В Murino и Point Toksovo редакторы должны были менять контент, порядок секций, изображения и SEO-поля через CMS. Для новых страниц не хотелось каждый раз создавать отдельный шаблон в коде.
Я использовал типы контента и компоненты Strapi, динамические маршруты и заранее заданный набор секций на frontend. Редактор выбирал блоки из этого набора.
Где возникает риск для интерфейса
Если дать CMS слишком много свободы, редактор может случайно разрушить интерфейс: оставить обязательный визуальный блок без данных, смешать несовместимые секции или создать страницу с неожиданным порядком контента. Если свободы слишком мало, каждое изменение снова становится задачей разработчика.
Как была устроена модель секций
У каждого типа секции были обязательные и необязательные поля, компонент интерфейса и правила для отсутствующих данных. Порядок блоков задавался в админке, а внешний вид оставался в коде сайта.
Динамический маршрут получал контент, SEO-поля и список секций. По типу секции выбирался Vue- или React-компонент. Для неизвестного типа и неполных данных предусматривалась отдельная обработка.
- CMS управляет контентом и порядком секций
- Frontend отвечает за отображение и безопасные fallback-сценарии
- SEO-поля обрабатываются как часть модели страницы
Что нужно заранее зафиксировать
До разработки нужно согласовать набор блоков и доступные редактору настройки. Новая разновидность секции требует модели в CMS, компонента на сайте и проверки отображения; одной записи в админке для этого недостаточно.
Редактор выбирает готовые секции; новый тип блока требует доработки CMS и интерфейса.
Что это дало контентным страницам
Редактор может собирать страницы из готовых секций через админку. При добавлении нового типа блока разработчик описывает поля, подключает компонент и проверяет пустые значения.
Правила для новых блоков
Для таких страниц я заранее задаю обязательные поля и поведение при отсутствии данных. Это помогает редактору работать с готовыми блоками, а разработчику — проверять каждый новый тип секции отдельно.
Проверяемые детали и ограничения
Материалы проекта

Что можно проверить по материалу
- На изображении показана страница проекта, контент которой управляется через CMS.
- В кейсе перечислены элементы реализации: динамический маршрут, ограниченный набор блоков, mapping компонентов и SEO-поля.
- Отдельно описано поведение при неизвестном типе блока и неполных данных.
Что осталось за рамками
Интерфейс редактора и внутренние модели CMS не публикуются. Показан итоговый экран, а правила рендеринга и fallback описаны без раскрытия закрытых данных проекта.
Стек
Проекты, где применялся этот опыт
Подробнее о проектах: задача, интерфейс и выполненная работа.
Связанные услуги
Если у вас похожая задача, посмотрите состав работ и порядок оценки.