B2B-услуги
Корпоративный сайт IT-интегратора на Next.js
Двуязычный сайт с полной статической генерацией: 64 страницы, серверный рендеринг, self-hosted шрифты с кириллицей и лид-форма с доставкой заявки в Telegram и CRM.
- Клиент
- Собственный продукт компании
- Год
- 2026
64
Страницы, сгенерированные статически
19 мс
TTFB на продакшене
0
Нарушений доступности по axe-core
44 пройденные проверки
0
Внешних запросов за шрифтами
Задача
Нужен был быстрый двуязычный сайт, который индексируется и Яндексом, и Google, держит высокие показатели Core Web Vitals и не разъезжается визуально с остальными продуктами компании.
Дополнительное ограничение — площадка: один виртуальный процессор и гигабайт оперативной памяти. На такой машине сборка Next.js просто не помещается в память, а значит стандартный сценарий «залить исходники и собрать на сервере» не работает.
Решение
Сайт собран на Next.js с App Router: все 64 страницы генерируются заранее, поэтому сервер отдаёт готовый HTML без работы на запрос. Локализация RU/EN реализована правилами роутера, а не middleware, — это убирает JavaScript с каждого запроса, что на одном ядре заметно.
Шрифты самохостятся через next/font с обязательным кириллическим сабсетом, внешних запросов к шрифтовым сервисам нет вовсе. Анимации, карусель и аккордеон сделаны на CSS и нативных элементах вместо библиотек — это экономит около 200 КБ JavaScript.
Сборка идёт на машине разработчика, на сервер уезжает готовый артефакт в 14 МБ, который активируется переключением симлинка. Откат на предыдущий релиз — одна команда. TLS-сертификаты выпускаются и продлеваются автоматически, без certbot и крона.
Этот кейс мы показываем клиентам, когда объясняем, почему скорость сайта — не «тюнинг в конце», а следствие решений, принятых на старте: где живут шрифты, что рендерится на сервере и сколько кода вообще уезжает в браузер.
Стек
- Next.js
- React
- TypeScript
- Tailwind CSS
- Caddy
- systemd
- Let's Encrypt
DEKART — DIGITAL
Расскажите о задаче
Ответим в течение 15 минут в рабочее время. Первая консультация и оценка проекта — бесплатно.