WORK 01 · Featured

Маркетинговые сайты · Линейка коммерческих сайтов

Серия маркетинговых сайтов на block-CMS

Серия сайтов на одном каркасе: оффер и токены, не новый Django каждый раз.

Роль: Архитектура повторяемого каркаса

  • 1 каркасна серию ниш
  • 17–25типов блоков
  • SEOв базовом слое
  • −$на каждый следующий сайт

Задача

Каждый «дорогой сайт с нуля» снова оплачивает админку, формы, 404, sitemap и деплой. К третьей нише бюджет уходит в инфраструктуру, а не в оффер — команды копируют старый репозиторий вместе с долгом.

Результат

Контракт блоков, seed за минуты, SEO в base, один процесс gunicorn/nginx. Новый сайт — тема, набор блоков и тексты; платформа уже есть.

  • Django
  • PostgreSQL
  • Whitenoise
  • gunicorn
  • nginx

Живой сайт

Экраны block-CMS

Админка, палитра блоков, токены ниш, SEO, лиды, деплой и серия витрин — каркас, не один лендинг.

Админка: Page и блоки
Админка: Page и блоки /admin/pages/
Палитра типов блоков
Палитра типов блоков /admin/blocks/
Токены двух ниш
Токены двух ниш /theme/
SEO в базовом слое
SEO в базовом слое /seo/
Lead с источником
Lead с источником /admin/leads/
Чеклист деплоя
Чеклист деплоя /deploy/
Шаблон услуги
Шаблон услуги /service/
Серия ниш на каркасе
Серия ниш на каркасе /series/

Ставка

Каркас окупается на серии

«Сайт как у дорогих брендов» — это админка, лиды, SEO и деплой. Если собирать с нуля каждый раз, маржа съедается инфраструктурой.

Это не кейс про один лендинг. Это продукт-каркас: второй и третий коммерческий сайт не оплачивают заново налог на Django. Ставка — окупиться уже на двух–трёх запусках в год: следующий платит за оффер и дизайн-токены, не за платформу.

Без каркаса к третьей нише команды копируют старый репозиторий вместе с багами, секретами и catch-all URL. Бюджет уходит в инфраструктуру, а не в то, что конвертит.

Если ниша одна и навсегда — каркас избыточен. Если линейка — он окупается раньше, чем кажется.

  • Один позвоночник на серию ниш
  • Новый сайт ≠ новый startproject
  • Считать: стоимость каркаса / число ниш за год
/series/

Контракт

Page + PageBlock как контракт

Редактор собирает экран из известных типов; разработчик добавляет тип один раз.

Page — slug, шаблон (home / service / contacts), SEO-поля. На странице — упорядоченные PageBlock: тип + JSON payload. Рядом SiteSettings, Lead с источником и seed, который поднимает рабочий каркас за минуты, а не «пустой Django».

Контент правится в админке, не через PR на каждый абзац. Inline-блоки, понятные русские названия типов, JSON только где нужны списки — с предсказуемой схемой. Иначе админка становится свалкой, и снова зовут разработчика «поменять порядок плиток».

/admin/pages/

Палитра

Палитра, не page-builder

17–25 типов под воронку — свобода внутри контракта, не «любой дизайн из админки».

Типы заточены под услуговый и коммерческий лендинг: hero с формой, trust, плитки услуг, процесс, отзывы, карта, CTA, документы. Не сто конструкторов ради демо — набор, которым реально собирается сайт.

Сознательно не строили drag-and-drop page-builder и не выносили контент в headless без фронтенд-команды. Обещать «что угодно из админки» — способ убить дизайн и скорость правок одновременно.

  • Без обязательного React «на вырост»
  • Новый тип блока — один раз на серию
  • Имена типов и схема payload — священны
/admin/blocks/

Ниша

Ниша = токены и payload

Фон, акцент, шрифты, набор блоков и копирайт — каркас один, форков пять не будет.

Услуговый B2B тянет sidebar и hero с формой; медиа и fashion наращивают доменные модели поверх того же принципа «страница = композиция блоков». Правило границы: пригодится следующей нише — в каркас; разовый эксперимент клиента — тема и payload.

Иначе через год получите пять несовместимых форков под видом «одной серии». Code review смотрит на переносимость: можно ли поднять другой бренд, не вырезая половину шаблонов.

/theme/

SEO

SEO в позвоночнике

Canonical, OG, robots, sitemap в base — дёшево в каркасе, дорого после запуска рекламы.

SEO — слой платформы, не плагин «когда будет трафик». Приоритеты в sitemap у страниц; брендовая 404 с полезными ссылками — битый URL с рекламы не обязан быть тупиком.

Это то, что команды забывают в копипасте и вспоминают, когда уже льют бюджет. В каркасе оно поднимается вместе с seed.

/seo/

Заявки

Lead с источником

Без source сайт «красивый», но слепой: непонятно, что усиливать.

Контракт Lead (поля + источник) нельзя ломать между запусками — иначе ломается аналитика. Hero, CTA и контакты пишут, откуда пришла заявка. Фильтр в админке экономит часы разборов «откуда лид».

После релиза минимум наблюдаемости: логи, доступ к Lead, проверка форм и sitemap. «Сайт запущен» — это не только DNS, а живой конверсионный контур.

/admin/leads/

Процесс

Деплой копируется

gunicorn, nginx, systemd, Whitenoise, миграции, seed — процесс, не папка с костылями.

Следующий сайт копирует рецепт запуска. Чеклист против типичных ловушек копипаста: старые slug и секреты, catch-all раньше префиксов, media/static в nginx, блок «только для клиента» вне реестра типов.

Один процесс деплоя на всю серию — часть продукта. Иначе каждый запуск снова изобретает прод и снова платит разработчиком за одну и ту же боль.

  • settings_dev / prod и секреты через окружение
  • Catch-all URL всегда последним
  • Seed поднимает каркас, не пустой проект
/deploy/

Граница

Граница каркаса и кастома

Тот же service-шаблон, другой payload — пока это маркетинговая оболочка.

Длинная услуга собирается из той же палитры, что главная. Меняется акцент и тексты, не уникальная вёрстка на каждую нишу.

Когда появляются кабинет, очереди, биллинг или тяжёлый UGC — это другой класс продукта. Каркас остаётся для маркетинговых оболочек; доменные apps наращиваются рядом. Набить портал одними PageBlock — путь к нечитаемому JSON и боли редактора.

  • Не универсальный page-builder ради демо
  • Не headless без команды на фронт
  • Не «любой дизайн из админки»
/service/

Итог

Итог

Block-CMS — способ продавать серию «дорогих» сайтов без серии инфраструктурных долгов. Редактор получает админку, бизнес — предсказуемый запуск, разработка — один позвоночник вместо зоопарка копий.

Следующий сайт платит за оффер и токены. Платформа, SEO, лиды и деплой уже куплены каркасом — если вы реально запускаете линейку, а не один лендинг навсегда.