Next.jsReact启动器

liqaa-template-nextjs — Next.js 启动器模板

作者 hartemyaakoub

基于 Next.js 16 App Router 的 LIQAA 视频通话集成模板,包含服务端身份换取 SDK token、客户端通话按钮与带 HMAC 校验的 Webhook 接收端点。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-14查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

Next.js 16 App Router 与 RSC,TypeScript strict 模式

02

服务端 Server Component 完成身份到 HMAC 签名 SDK token 的换取

03

客户端组件加载 @liqaa/js 并渲染通话按钮

04

/api/webhooks/liqaa 提供带 HMAC 校验与重放保护的 Webhook 处理器

05

包含 Tailwind CSS v4(可跳过)、ESLint、Prettier 与 strict tsconfig

06

支持一键部署到 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.jsReact启动器

适合你的项目吗?

适用场景

  • 为现有或新建 Next.js 项目接入 LIQAA 视频通话能力
  • 需要服务端签发 SDK token、客户端发起通话的集成方式
  • 需要接收并校验 LIQAA Webhook 事件(如 call.started、call.ended)
  • 通过 Vercel 快速部署一个可运行的通话演示或原型

适合人群

  • 使用 Next.js App Router 并计划集成 LIQAA 视频通话的开发者
  • 希望自行提供认证与数据库、只复用通话集成骨架的团队
  • 需要参考服务端 token 签发与 Webhook 校验实现的工程师

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    使用 npx degit hartemyaakoub/liqaa-template-nextjs my-app 获取模板,然后 npm install

  2. 2

    复制 .env.example 为 .env.local,并配置 LIQAA_PK、LIQAA_SK、LIQAA_WEBHOOK_SECRET

  3. 3

    从 liqaa.io/console 获取密钥,用 npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended 获取 Webhook 签名密钥

  4. 4

    本地运行 npm run dev,访问 localhost:3000 查看通话按钮

  5. 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 原文

The template is a **clean foundation**, not a finished product. Drop your auth + UI on top.

README 原文
https://github.com/hartemyaakoub/liqaa-template-nextjs/blob/main/LICENSEhttps://github.com/hartemyaakoub/liqaa-template-nextjs/blob/main/README.md

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.**

[![deploy](https://img.shields.io/badge/Deploy_to-Vercel-000?style=flat-square&logo=vercel)](https://vercel.com/new/clone?repository-url=https://github.com/hartemyaakoub/liqaa-template-nextjs)
[![next.js](https://img.shields.io/badge/Next.js-16-000?style=flat-square&logo=nextdotjs)](https://nextjs.org)
[![liqaa](https://img.shields.io/badge/LIQAA-Cloud-1d4ed8?style=flat-square)](https://liqaa.io)
[![license](https://img.shields.io/badge/license-MIT-475569?style=flat-square)](./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

[![Deploy with Vercel](https://vercel.com/button)](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.
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。