Исторически при выборе технологического стека для веб-проекта инженеры оценивали привычные метрики: скорость загрузки клиентского бандла, удобство типизации в TypeScript, размер экосистемы готовых компонентов и доступность разработчиков на рынке труда.
Но в 2026 году, когда львиную долю кода генерируют автономные кодинг-агенты вроде Claude Code, Cursor и OpenAI Codex, в уравнение разработки внезапно ворвалась совершенно новая экономическая метрика: стоимость токенов ИИ на генерацию и отладку рабочего приложения (AI Cost per Feature).
Эту неочевидную закономерность исследовал признанный эксперт по веб-стандартам и бывший инженер Salesforce Нолан Лоусон (Nolan Lawson). В своем резонансном исследовании Нолана Лоусона он провел масштабный слепой эксперимент, сравнив затраты токенов при генерации одного и того же типового приложения на 12 различных современных веб-фреймворках.
Результаты эксперимента заставляют совершенно по-новому взглянуть на архитектурный бойлерплейт популярных библиотек.
Методология эксперимента: единое ТЗ для автономного агента
Лоусон сформулировал кристально четкую и приближенную к реальной разработке задачу:
- Создать контентное веб-приложение каталога покемонов на базе публичного REST API (PokéAPI);
- Реализовать список с поиском, пагинацией, карточками персонажей и экраном детального описания характеристик;
- Обеспечить базовую адаптивность интерфейса и соблюдение базовых критериев доступности WCAG;
- В качестве исполнителя выступал передовой агент на базе модели Claude 3.5 Sonnet / Claude Opus в изолированном окружении, получающий на вход пустое рабочее пространство с настроенным шаблоном соответствующего фреймворка.
Каждому фреймворку давалось пять независимых попыток генерации с нуля. Замерялись: итоговая стоимость потраченных API-токенов в долларах, количество циклов «написание кода — запуск тестов — исправление ошибок компиляции» и успешность итоговой сборки.
Давай посмотрим, как выглядел лаконичный серверный роутинг на победившем связке Hono + htmx:
import { Hono } from 'hono';
import { html } from 'hono/html';
const app = new Hono();
app.get('/pokemon/:id', async (c) => {
const id = c.req.param('id');
const res = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`);
const data = await res.json();
return c.html(html`
<div class="pokemon-card" id="pokemon-${data.id}">
<h3>${data.name}</h3>
<img src="${data.sprites.front_default}" alt="${data.name}" />
<div class="types">
${data.types.map((t: any) => html`<span class="badge">${t.type.name}</span>`)}
</div>
</div>
`);
});
export default app;
Итоги бенчмарка: рейтинг стоимости стеков
Результаты замеров выявили колоссальный разброс в реальных денежных затратах на разработку:
- Hono + htmx: $2.67 (самый дешевый и стабильный стек; чистый серверный HTML без клиентского рантайма);
- Astro: $2.76 (архитектура островов с нулевым JS по умолчанию);
- Remix / React Router v7: $3.81;
- Next.js (App Router): $3.94;
- SvelteKit: $4.28;
- Angular: $4.97 (самый дорогой стек; при этом в 2 из 5 попыток агент вообще не смог собрать работающее приложение!).
Почувствуй разницу: генерация кода для Angular обошлась почти в два раза дороже, чем для Hono! А в 40% случаев модель запуталась в строгих инъекциях зависимостей (Dependency Injection), модулях и декораторах и исчерпала лимит шагов, выдав сломанный бинарник.
Давай взглянем на аналогичный компонент на легковесном фреймворке Astro:
---
// Компонент Astro: чистая серверная выборка данных без клиентского рантайма
const { id } = Astro.params;
const res = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`);
const pokemon = await res.json();
---
<div class="pokemon-details">
<h2>{pokemon.name}</h2>
<img src={pokemon.sprites.front_default} alt={pokemon.name} />
<ul>
{pokemon.stats.map((stat: any) => (
<li>{stat.stat.name}: {stat.base_stat}</li>
))}
</ul>
</div>
Смотри, насколько меньше токенов требуется модели, чтобы выразить ту же самую мысль: нет классов, нет сервисов, нет подписок RxJS. Меньше токенов — меньше вероятность галлюцинации и ошибки компилятора. Если тебе интересны практические замеры агентских команд, рекомендуем наш материал тестирование стека ИИ-агентов.
Почему бойлерплейт стал прямым финансовым налогом
Вывод исследования Лоусона фундаментален: в эпоху ИИ синтаксическая многословность фреймворка превратилась из вопроса личного вкуса разработчика в прямую финансовую статью расходов бизнеса.
Фреймворки, требующие обилия деклараций и сложной настройки окружения, заставляют ИИ гонять огромные контекстные окна и тратить дорогие итерации на исправление ошибок компиляции. Простые, стандартные веб-платформенные решения (Hono, Astro, чистый HTML и стандарты Fetch/Request) выигрывают не только в скорости загрузки у пользователей, но и в кошельке компании при автоматизированной генерации кода.
