
Hookah Hub
Опубликованhookahhub.pro — информационно-рейтинговая платформа о кальянной культуре: каталог из 14 281 вкуса табака и 278 брендов, рейтинги по пяти числовым критериям, генератор миксов с ежедневными рекомендациями и личная «Полка» для своей коллекции табака. Для бизнеса — раздел «Сотрудничество»: карта гостя в Apple/Google Wallet, QR-меню на столе и экран для мастера. Next.js 15, PostgreSQL, Redis, 5 языков. Контент 18+.
/// Ключевые фичи
- Каталог из 14 281 вкуса табака от 278 брендов, плюс модели кальянов и аксессуары
- Рейтинги по пяти критериям — вкус, дымность, крепость, жаростойкость, общая оценка; средние денормализованы для быстрой выдачи
- Генератор миксов с ежедневным «Миксом дня» из каталога
- «Моя полка» — личная коллекция табака; банки, которых нет в каталоге, после модерации становятся новыми вкусами
- B2B-раздел «Сотрудничество»: карта гостя в Apple Wallet и Google Wallet с QR-кодом и историей визитов
- QR-меню миксов на столе — состав, граммы, чаша, жар — и генератор только из наличия бара заведения
- NextAuth v5 с ролями и банами; Redis для кеша и rate limiting в fail-safe режиме
- 5 языков, включая арабский с RTL: UI-строки отдельно от контента из БД с фолбэком locale → En → Ru
/// Скриншоты
О проекте
Hookah Hub — наш собственный продукт: информационно-рейтинговая платформа о кальянной культуре с тэглайном «Сообщество ценителей кальянной культуры». Сайт объединяет рейтинги табаков, рецепты миксов, обзоры кальянов и аксессуаров, гайды и материалы об истории кальяна — с отдельным разделом о здоровье и B2B-инструментами для кальянных и лаунжей. Контент площадки — 18+. Запуск состоялся в феврале 2026 года.
Разделы сайта: Табаки, Рецепты, Генератор, Гайды, История, Кальяны, Аксессуары, Здоровье, Сотрудничество.
Каталог и рейтинги
Ядро платформы — каталог: 14 281 вкус табака от 278 брендов, модели кальянов и аксессуары. Каждая позиция оценивается по пяти числовым критериям — вкус, дымность, крепость, жаростойкость и общая оценка.
Решение сознательное: без текстовых комментариев. Одна оценка на пользователя и сущность, а средние значения денормализованы в родительские таблицы — это держит выдачу и сортировку по рейтингу быстрыми даже при таком объёме каталога, без агрегации на лету.
Генератор миксов и «Моя полка»
Генератор собирает миксы и предлагает ежедневный «Микс дня», помогая ориентироваться в каталоге такого масштаба.
«Моя полка» — личная коллекция банок табака пользователя. Отметил в каталоге то, что стоит дома, — и генератор предлагает миксы только из этого, а не из четырнадцати тысяч вкусов. Если нужного вкуса в каталоге ещё нет, пользователь заводит свою банку вручную; после модерации такие записи превращаются в новые вкусы каталога — это один из каналов, которым каталог пополняется.
Для бизнеса
Раздел «Сотрудничество» — B2B-инструменты для двух аудиторий: кальянных/лаунжей и производителей.
Для заведений: карта гостя в Apple Wallet и Google Wallet с QR-кодом и историей визитов, QR-меню миксов прямо на столе (состав, граммы, чаша, жар), генератор миксов, ограниченный наличием бара конкретного заведения, и отдельный экран для мастера. Для брендов — управление собственными данными в каталоге.
У каждого направления честно указан этап готовности: работает / пилот / в разработке — без выдачи желаемого за действительное.
Технические особенности
- Next.js 15 App Router, React 19, TypeScript
- PostgreSQL 16 через Prisma; Redis 7 — кеш и rate limiting в fail-safe режиме, приложение обязано оставаться работоспособным без Redis
- NextAuth v5 (JWT), вход по Credentials и через Google, роли USER/MODERATOR/ADMIN, баны
- Рендеринг через RSC, сознательно без статической генерации — force-dynamic со страничным кешированием через Redis
- Rate limiting по централизованным лимитам; IP берётся только из последнего элемента
X-Forwarded-For(за Traefik); вся входная валидация — на zod - next-intl, Tailwind CSS, Framer Motion, Recharts
- Тесты — Vitest и Playwright, включая отдельный мобильный прогон
- Деплой — Docker (standalone) на self-hosted Dokploy
Локализация
Локализация двухслойная. UI-строки живут в messages/{locale}.json, а контент из базы — в колонках с суффиксом локали (nameRu, nameEn и так далее), с фолбэком locale → En → Ru. Поддерживается 5 языков: русский, английский, арабский (с RTL-вёрсткой), японский и китайский.
Ответственная рамка
Контент платформы рассчитан на аудиторию 18+. Отдельный раздел «Здоровье» даёт информационные материалы, а не рекомендации к курению: Hookah Hub — информационная и рейтинговая платформа для тех, кто уже интересуется темой, а не сервис, который её пропагандирует. Сайт ничего не продаёт и не является рекламой табачной продукции.