Экспертиза · Веб-сайты
Этот сайт — наша техническая спецификация, включая измерения, которые нам не на пользу.
Мы строим сайты, отрисовываемые на сервере, с изображениями в AVIF и WebP, проверенными извне заголовками безопасности, картой сайта, генерируемой из данных, и проверкой приёмки, запускаемой после каждой публикации. Всё это можно проверить на странице, которую вы читаете.
Уже построеноМы не можем цитировать сайт клиента без его согласия, но нам это и не нужно: доказательство — сама эта страница. Она работает на Next.js 16.2.4 с React 19.1.0, отдаётся предварительно сгенерированной из кэша (`x-nextjs-prerender: 1`, `x-nextjs-cache: HIT`), содержит HSTS с `preload`, `nosniff`, `SAMEORIGIN`, `Referrer-Policy` и полную политику содержимого — проверено с `curl -I` 06.09.2026. Карта сайта содержит 147 адресов, все сгенерированы из данных, а не написаны вручную. Вторая реализация, в том же репозитории: инфраструктура формы — журнал append-only, публичная health-страница, ограничение частоты — и скрипт приёмки, запущенный после публикации.
Сайт-визитка имеет только один честный тест: можете ли вы извне проверить то, что компания о нём говорит? Поэтому эта страница перечисляет не технологии, а вещи, которые вы можете самостоятельно проверить командой. Сайт работает на Next.js 16.2.4 и React 19.1.0, а страницы prerendered при сборке и выдаются из cache — это видно в заголовках ответа: `x-nextjs-prerender: 1`, `x-nextjs-cache: HIT`, `s-maxage=31536000`, с окном в 300 секунд, в течение которого старая страница ещё может быть отдана, пока обновляется.
Server-side rendering — не архитектурное предпочтение. Посетитель со слабым соединением и поисковый робот получают один и тот же полный HTML, не ожидая JavaScript. Сверху добавляется дисциплина ресурсов: изображения выходят в AVIF и WebP, с cache на один год; шрифты размещаются у нас, а не запрашиваются у внешнего сервиса; восемь библиотек интерфейса имеют оптимизированные import, чтобы не тянуть целые модули ради одной иконки.
Заголовки безопасности отправляются из двух мест и проверяются в реальном ответе, а не только в конфигурации: принудительный защищённый transport на два года с поддоменами и включением в preload list, запрет угадывания типа файла, ограничение встраивания в чужие frames, policy referrer и policy permissions, которая закрывает камеру и оставляет микрофон только для собственного origin — потому что голосовые демонстрации требуют его, а без этого исключения браузер молча отказывает.
Последняя часть — та, которая отличает нас, и она неприятна: мы публикуем и то, что у нас измерено плохо. Сервер пока не поддерживает Brotli и HTTP/2. Каталог переводов передаётся при каждом переходе и стоит примерно 70 KB compressed каждый раз. Пакет 443 KB содержит четыре каталога языков, из которых routable только один. Шрифты также приносят кириллический subset, хотя проверенные страницы не содержат ни одного кириллического символа. Эти цифры измерены, записаны в репозитории и в списке исправлений. Поставщик, у которого нет таких цифр о собственном сайте, либо не измерял, либо не хочет говорить.