Next.js 16 App Router 与 RSC,TypeScript strict 模式
liqaa-template-nextjs — Next.js 启动器模板
作者 hartemyaakoub
基于 Next.js 16 App Router 的 LIQAA 视频通话集成模板,包含服务端身份换取 SDK token、客户端通话按钮与带 HMAC 校验的 Webhook 接收端点。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
服务端 Server Component 完成身份到 HMAC 签名 SDK token 的换取
客户端组件加载 @liqaa/js 并渲染通话按钮
/api/webhooks/liqaa 提供带 HMAC 校验与重放保护的 Webhook 处理器
包含 Tailwind CSS v4(可跳过)、ESLint、Prettier 与 strict tsconfig
支持一键部署到 Vercel,并提示配置三个环境变量
模板详细介绍
该模板是一个 Next.js 16 起始项目,把 LIQAA 视频通话接入到 App Router 结构中。README 说明它包含:使用 App Router 与 RSC 的 Next.js 16、TypeScript strict 模式、一个在服务端将身份换取 HMAC 签名 SDK token 的 Server Component、一个加载 @liqaa/js 并显示通话按钮的 Client Component,以及位于 /api/webhooks/liqaa 的 Webhook 处理器(带 HMAC 校验与重放保护)。此外还包含 Tailwind CSS v4(README 注明可以跳过)、ESLint、Prettier 和 strict tsconfig,并支持一键部署到 Vercel。
模板本身不提供认证、数据库和超出最低限度的 UI 设计:示例使用硬编码用户,README 明确将其定位为“干净的基础”而非成品,需要自行叠加认证与界面。项目布局为 app/page.tsx(Server Component,获取 sdk_token)、app/liqaa-button.tsx(Client Component,调用 LIQAA.startCall())、app/api/webhooks/liqaa/route.ts 和 lib/liqaa.server.ts(server-only 的 exchangeIdentityForSdkToken())。
环境变量方面,README 列出 LIQAA_PK(公开密钥,浏览器可用)、LIQAA_SK(密钥,仅服务端)和 LIQAA_WEBHOOK_SECRET(创建 Webhook 时仅返回一次的签名密钥)。本地开发需复制 .env.example 为 .env.local,从 liqaa.io/console 获取密钥,并用 npx @liqaa/cli webhooks create 命令获取 Webhook 签名密钥。部署可走 Vercel 一键流程(会提示填写三个环境变量),也可手动执行 npm run build 与 npm run start。README 未说明该模板的测试、性能或生产环境验证情况。
适合你的项目吗?
适用场景
- 为现有或新建 Next.js 项目接入 LIQAA 视频通话能力
- 需要服务端签发 SDK token、客户端发起通话的集成方式
- 需要接收并校验 LIQAA Webhook 事件(如 call.started、call.ended)
- 通过 Vercel 快速部署一个可运行的通话演示或原型
适合人群
- 使用 Next.js App Router 并计划集成 LIQAA 视频通话的开发者
- 希望自行提供认证与数据库、只复用通话集成骨架的团队
- 需要参考服务端 token 签发与 Webhook 校验实现的工程师
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
使用 npx degit hartemyaakoub/liqaa-template-nextjs my-app 获取模板,然后 npm install
- 2
复制 .env.example 为 .env.local,并配置 LIQAA_PK、LIQAA_SK、LIQAA_WEBHOOK_SECRET
- 3
从 liqaa.io/console 获取密钥,用 npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended 获取 Webhook 签名密钥
- 4
本地运行 npm run dev,访问 localhost:3000 查看通话按钮
- 5
部署可走 Vercel 一键流程,或手动执行 npm run build 与 npm run start
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 运行模板前必须配置 LIQAA 环境变量:需在 .env.local 中设置 LIQAA_PK(公开密钥)与 LIQAA_SK(服务端密钥),否则集成无法工作。
- Webhook 功能需要 LIQAA_WEBHOOK_SECRET 签名密钥,该密钥仅在创建 Webhook 时返回一次,必须妥善保存。
- 需从 liqaa.io/console 注册并获取 LIQAA 密钥,属于外部服务账号依赖。
- 获取 Webhook 签名密钥需使用 npx @liqaa/cli webhooks create 命令,依赖 LIQAA 官方 CLI 工具。
- 模板不包含认证功能,需自行接入 NextAuth、Clerk、Lucia 等第三方认证方案。
- 模板不包含数据库,示例使用硬编码用户,实际使用需自行接入数据存储。
- 模板定位为干净的基础骨架而非成品,需自行叠加认证与 UI 才能用于实际产品。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
echo "LIQAA_PK=pk_live_…" >> .env.local
README 原文
LIQAA_WEBHOOK_SECRET=whsec_… # signing secret (returned once when you create a webhook)
README 原文
- Get your keys from [liqaa.io/console](https://liqaa.io/console)
README 原文
- Get your webhook signing secret with `npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended`
README 原文
- Authentication (bring your own — NextAuth, Clerk, Lucia, etc.)
README 原文
- Database (the example uses a hard-coded user)
README 原文
https://github.com/hartemyaakoub/liqaa-template-nextjs/blob/main/LICENSEhttps://github.com/hartemyaakoub/liqaa-template-nextjs/blob/main/README.mdThe template is a **clean foundation**, not a finished product. Drop your auth + UI on top.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-07-27
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: b5414c60ad72fa541b540e25fcc6fd0e19fa5aded0439cb9f4fd1cfdb554c93e
2026-10-14T17:16:33.744Z
来源文件 / 仓库<div align="center">
# Next.js + LIQAA Template
**Production-ready Next.js 16 starter with LIQAA video calls wired in.**
[](https://vercel.com/new/clone?repository-url=https://github.com/hartemyaakoub/liqaa-template-nextjs)
[](https://nextjs.org)
[](https://liqaa.io)
[](./LICENSE)
```bash
npx degit hartemyaakoub/liqaa-template-nextjs my-app
cd my-app && npm install
echo "LIQAA_PK=pk_live_…" >> .env.local
echo "LIQAA_SK=sk_live_…" >> .env.local
npm run dev
```
**That's it.** A working video-call button is now on `localhost:3000`.
</div>
---
## What's included
- Next.js 16 (App Router, RSC)
- TypeScript strict mode
- Server Component that exchanges identity → SDK token (HMAC-signed)
- Client Component that loads `@liqaa/js` and shows a call button
- Webhook handler at `/api/webhooks/liqaa` with HMAC verification + replay protection
- Tailwind CSS v4 (skip if you don't want it)
- ESLint + Prettier + tsconfig strict
- Ready-to-deploy on Vercel (one-click)
## Project layout
```
.
app/
page.tsx # Server Component — fetches sdk_token
layout.tsx
liqaa-button.tsx # Client Component — calls LIQAA.startCall()
api/
webhooks/
liqaa/
route.ts # Webhook receiver with HMAC verification
lib/
liqaa.server.ts # exchangeIdentityForSdkToken() — server-only
.env.example # required env vars
package.json
README.md
```
## Environment variables
Required for the integration to work:
```bash
LIQAA_PK=pk_live_… # public key (browser-safe)
LIQAA_SK=sk_live_… # secret key — SERVER ONLY
LIQAA_WEBHOOK_SECRET=whsec_… # signing secret (returned once when you create a webhook)
```
For local dev:
- Copy `.env.example` → `.env.local`
- Get your keys from [liqaa.io/console](https://liqaa.io/console)
- Get your webhook signing secret with `npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended`
## Deploy
### One-click on Vercel
[](https://vercel.com/new/clone?repository-url=https://github.com/hartemyaakoub/liqaa-template-nextjs&env=LIQAA_PK,LIQAA_SK,LIQAA_WEBHOOK_SECRET)
Vercel will prompt for the three env vars, build, and deploy. Done.
### Manual
```bash
npm run build
npm run start
```
## What this template does NOT do
- Authentication (bring your own — NextAuth, Clerk, Lucia, etc.)
- Database (the example uses a hard-coded user)
- UI design beyond minimum (style it however you want)
The template is a **clean foundation**, not a finished product. Drop your auth + UI on top.
## Common customizations
```ts
// Force a specific room name (useful for "support" or "sales-demo" buttons)
liqaa.startCall('[email protected]', 'Agent', { room: 'support-line' });
// Change accent color to match your brand
LIQAA.init({ publicKey, sdkToken, accent: '#FF6B6B' });
// Show on the left side (RTL languages)
LIQAA.init({ publicKey, sdkToken, position: 'left' });
```
See [liqaa.io/docs](https://liqaa.io/docs) for the full SDK reference.
## License
[MIT](./LICENSE) — fork it, ship it, sell it.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
