
Hookah Hub
已发布hookahhub.pro 是一个关于水烟文化的信息与评分平台:收录 14,281 种烟草口味和 278 个品牌的目录、按五项数值标准打分的评分体系、带每日推荐的混合配方生成器,以及用于管理个人烟草收藏的"我的货架"。面向商家的"合作"板块提供:Apple/Google Wallet 顾客卡、桌面 QR 菜单和调配师专用屏幕。Next.js 15、PostgreSQL、Redis、5 种语言。内容面向 18+ 人群。
/// 核心功能
- 收录来自 278 个品牌的 14,281 种烟草口味,外加水烟壶型号和配件
- 五项标准评分 — 口味、烟量、强度、耐热性、综合评价;平均分经反规范化存储,保证快速输出
- 混合配方生成器,每日从目录中推出"当日配方"
- "我的货架" — 个人烟草收藏;目录中没有的烟罐经审核后会成为新口味
- B2B "合作"板块:Apple Wallet 与 Google Wallet 顾客卡,带 QR 码和到店记录
- 桌面 QR 混合配方菜单 — 成分、克数、烟碗、火力 — 以及仅基于门店库存的生成器
- NextAuth v5,支持角色与封禁;Redis 用于缓存和 fail-safe 模式的 rate limiting
- 5 种语言,包括带 RTL 的阿拉伯语:UI 字符串与数据库内容分离,回退链为 locale → En → Ru
/// 截图
关于项目
Hookah Hub 是我们的自有产品:一个关于水烟文化的信息与评分平台,标语是"水烟文化鉴赏者社区"。网站汇集烟草评分、混合配方、水烟壶与配件评测、指南以及水烟历史文章 — 另设健康专栏,并为水烟馆和休闲吧提供 B2B 工具。平台内容面向 18+ 人群。于 2026 年 2 月上线。
网站板块:烟草、配方、生成器、指南、历史、水烟壶、配件、健康、合作。
目录与评分
平台的核心是目录:来自 278 个品牌的 14,281 种烟草口味,外加水烟壶型号和配件。每个条目按五项数值标准打分 — 口味、烟量、强度、耐热性和综合评价。
这是一个有意的取舍:不设文字评论。每位用户对每个条目只有一个评分,平均分反规范化存入父表 — 即使目录规模如此之大,也能保持输出和按评分排序的速度,无需实时聚合。
混合配方生成器与"我的货架"
生成器负责组合配方,并每日推出"当日配方",帮助用户在如此规模的目录中找到方向。
"我的货架"是用户的个人烟草罐收藏。在目录中标记家里现有的烟草后,生成器只会从这些口味中配方,而不是从一万四千多种里挑选。如果所需口味目录中还没有,用户可以手动登记自己的烟罐;这些记录经审核后会成为目录里的新口味 — 这也是目录扩充的渠道之一。
面向商家
"合作"板块面向两类受众提供 B2B 工具:水烟馆/休闲吧和生产商。
面向门店:Apple Wallet 与 Google Wallet 顾客卡(带 QR 码和到店记录)、直接放在桌上的 QR 混合配方菜单(成分、克数、烟碗、火力)、仅限该门店吧台库存的配方生成器,以及调配师专用屏幕。面向品牌 — 管理目录中的自有数据。
每个方向都如实标注了所处阶段:已可用 / 试点中 / 开发中 — 不把愿景当成现实来宣传。
技术特点
- Next.js 15 App Router、React 19、TypeScript
- 通过 Prisma 使用 PostgreSQL 16;Redis 7 负责缓存和 fail-safe 模式的 rate limiting,应用必须在没有 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)部署到自托管的 Dokploy
本地化
本地化分为两层。UI 字符串存放在 messages/{locale}.json,数据库内容则存放在带语言后缀的列中(nameRu、nameEn 等),回退链为 locale → En → Ru。支持 5 种语言:俄语、英语、阿拉伯语(含 RTL 排版)、日语和中文。
负责任的定位
平台内容面向 18+ 受众。独立的"健康"板块提供的是信息资料,而不是吸烟建议:Hookah Hub 是为已经关注这一主题的人打造的信息与评分平台,而非宣传它的服务。网站不销售任何商品,也不构成烟草制品广告。