Контекст и исходная задача
Сайт должен не только сообщать перечень услуг. Его задача — объяснить подход к разработке, помочь посетителю разобраться в формате решения и привести к предметному разговору без обязательного готового технического задания.
Проект сразу строился как развивающаяся система: услуги получают самостоятельные посадочные страницы, справочник отвечает на вопросы до старта, а все переходы связываются понятными следующими шагами.
Архитектура продукта
Основа — Next.js и TypeScript. Страницы услуг, статьи и кейсы хранятся в MDX, а метаданные проверяются Zod-схемами во время сборки. Это позволяет расширять структуру сайта без копирования шаблонов и не выпускать материал с неполными обязательными полями.
Форма заявки работает через серверное действие, Prisma и PostgreSQL. Интерфейс отделён от контура сохранения данных: отсутствие подключения к базе не ломает страницы и даёт пользователю понятное состояние ошибки.
Интерфейс и адаптивность
Визуальная система построена на крупной типографике, инженерной сетке и интерактивных схемах. Движение помогает объяснять связи между задачей и решением, но не блокирует содержание и отключается при системной настройке уменьшения анимации.
Каждый ключевой экран имеет отдельную мобильную композицию. Элементы не просто уменьшаются, а перестраиваются под вертикальный сценарий чтения и сенсорное управление.
SEO и аналитика для Яндекса
Для страниц формируются уникальные title и description, canonical, Open Graph, robots и структурированные данные. Sitemap включает только разрешённые к индексации материалы, а IndexNow используется для сообщения поисковым системам об опубликованных изменениях.
Яндекс.Метрика подключается после согласия посетителя. Цели фиксируют начало и результат работы с формой, переходы к услугам, материалам и контактам. Поля формы исключены из записи Вебвизора.
Текущий результат
Сайт работает в production как единый контур из услуг, справочника, аналитики и заявок. Этот кейс показывает фактическую архитектуру и интерфейс проекта; коммерческие показатели и неподтверждённые результаты намеренно не публикуются.

