guide/custom-code.tsx

Custom code

Сайт на коде: когда лучше писать интерфейс вручную

Код выбирают, когда сайт становится не просто страницей, а продуктом: нужны состояния, данные, API, личный кабинет, dashboard или нестандартная логика.

Подходит для

Custom code нужен, когда сайт должен работать как интерфейс, а не как обычная страница с текстом.

  • личные кабинеты, dashboard, CRM-подобные панели;
  • калькуляторы, фильтры, таблицы, сложные формы;
  • интеграции с API, внешними сервисами и backend.

Что дает код

Код дает контроль над поведением, структурой данных и пользовательскими состояниями. Можно сделать именно тот flow, который нужен бизнесу, а не подстраиваться под тему или плагин.

  • точная логика интерфейса и обработка ошибок;
  • масштабируемые компоненты и понятная структура;
  • меньше ограничений для будущих функций.

Когда не нужен

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

  • для простых страниц не стоит усложнять стек;
  • поддержка требует разработчика;
  • важно заранее понимать будущие функции.

Практический выбор

Код нужен, когда важна логика, а не только страницы

Если пользователь должен фильтровать данные, работать в кабинете, видеть статусы, подключаться к API или выполнять действия внутри интерфейса, кастомная разработка обычно надежнее CMS. Здесь важны состояния, сценарии, ошибки, безопасность данных и нормальная архитектура.

Frontend-логика

Состояния кнопок, загрузка данных, ошибки, валидация форм, сохранение изменений, фильтрация, сортировка, страницы с параметрами и интерактивные сценарии.

Интерфейс продукта

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

Развитие проекта

Custom code проще расширять, если заранее держать структуру чистой: новые страницы, компоненты, API, роли, состояния и бизнес-правила добавляются без борьбы с конструктором.