Next.js и TypeScript
Строгая типизация и статические страницы: сайт отдаётся готовым HTML, а не собирается скриптами в браузере — это важно и для скорости, и для ИИ-ответов.
Здесь то, чем действительно пользуюсь каждый день, — тот же набор, на котором собран этот сайт. Без «топ-10 инструментов 2026 года»: если чего-то нет в списке, значит я этим не работаю.
Основной стек один на все сайты: так любой проект можно передать другому разработчику без переучивания. Отступаю от него, только когда задача этого требует.
Строгая типизация и статические страницы: сайт отдаётся готовым HTML, а не собирается скриптами в браузере — это важно и для скорости, и для ИИ-ответов.
База для заявок, расчётов и отчётов. Деньги — точным числовым типом, сырые данные — в JSON.
Никаких утилитарных классов: макеты заданы точными значениями, а тема живёт в переменных — светлая и тёмная из одного набора.
Ни одного внешнего запроса за шрифтами. Кириллица не «прыгает» при загрузке, а страница не зависит от чужого CDN.
Редактор, конструктор, личный кабинет — задачи, где страница живёт в браузере, а не отдаётся готовой. Так сделан конструктор печатей: сборка вектора и экспорт файлов считаются у пользователя, серверу остаются хранение и оплаты.
Проверки — не ритуал: каждая ловит ошибку, которую я уже когда-то делал.
Юнит-тесты денежной логики и фильтров безопасности. Правило простое: денежная логика меняется только вместе с тестом.
Сквозные проверки в настоящем браузере: калькулятор, формы, аудит и отсутствие горизонтальной прокрутки на 360 px.
Скорость, доступность и SEO мобильной версии — на своих же страницах, перед каждым релизом.
Отдельные тесты роняют сборку, если пункт меню ведёт на несуществующую страницу или статья пропала из карты сайта.
Агенты делают черновую часть, решения и ответственность остаются человеку.
У каждого проекта есть файлы с правилами и планом, которые агент читает перед работой. Без них он делает «в среднем правильно», а нужно — правильно для этого проекта.
Работа режется на волны с явным списком того, что делать и чего не делать. Расплывчатая задача даёт расплывчатый результат — это верно и для людей, и для агентов.
Сборка, типы, линтер, тесты. Агент не «обещает, что работает» — он показывает зелёные проверки, а спорное я смотрю руками.
Каждая пойманная ошибка окружения записывается в контекст проекта. Второй раз на неё уже никто не наступает.
Инфраструктура простая настолько, насколько это возможно без потери надёжности: новый сайт едет на VPS в контейнере, а проект, которому хватает обычного хостинга, там и остаётся.
Приложение едет в контейнере, образ собирается в CI, на сервере ничего не компилируется.
Ежесуточный дамп базы с ротацией и автоматическая чистка данных, у которых вышел срок хранения.
Атомарные коммиты с внятными сообщениями: через полгода видно не только что изменилось, но и почему.
Как этот набор превращается в сайт — на странице «Как я работаю», а что из него получилось — в разборах моих проектов. Хотите проверить свой сайт тем же чек-листом — есть экспресс-аудит.