Главный аргумент HTMX: «Зачем вам React, если 80% страниц — это формы и таблицы». Главный контраргумент: «А что делать с оставшимися 20%». Ответ зависит от того, что у вас за продукт.
Когда HTMX выигрывает
HTMX отлично подходит, когда:
- У вас CRUD-приложение: списки, формы, фильтры, страницы редактирования.
- Минимум клиентской интерактивности (нет canvas, нет real-time-чатов, нет сложных мастеров).
- SEO не критичен или решается через server-rendering Django.
- В команде сильные бэкендеры, и не хочется содержать отдельных React-разработчиков.
Пример нашего проекта: внутренняя CRM на 200 пользователей. Django + HTMX + AlpineJS для редких клиентских мелочей. Билд 4 секунды, hot reload мгновенный, бандл клиента 12 KB, команда из 3 человек.
Когда Next.js выигрывает
Next.js по-прежнему правильный выбор, если:
- Сайт публичный, SEO критичен. SSR/SSG у Next.js работает «из коробки» на уровне, до которого Django + HTMX надо допиливать руками.
- Дизайн интерактивный: анимации, scroll-triggered эффекты, видео-плееры, calculator-блоки.
- Нужны мобильные приложения, и хочется переиспользовать кодовую базу через React Native.
- У вас уже есть React-команда — переучивать на HTMX дорого.
Сравнение по 5 метрикам
| Метрика | Next.js | Django + HTMX |
|---|---|---|
| Время до MVP | 4–6 недель | 2–4 недели |
| Размер клиентского бандла | 150–400 KB | 10–30 KB |
| SEO «из коробки» | Отлично | Хорошо |
| Богатые интерактивные виджеты | Отлично | Слабо |
| Стоимость поддержки | Выше | Ниже |
Гибридный путь
Часто правильный ответ — оба. Например: маркетинговый сайт на Next.js (SEO, скорость, дизайн), а закрытый личный кабинет — на Django + HTMX (быстрее разрабатывается, проще поддерживать). Так мы и сделали в одном из последних проектов.
Главное — не выбирать стек «потому что модно». Выбирайте под задачу.