Next.jsReactStarter

liqaa-template-nextjs — Next.js Starter Template

By hartemyaakoub

A LIQAA video call integration template built on Next.js 16 App Router, including server-side identity exchange for an SDK token, a client-side call button, and a webhook endpoint with HMAC verification.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-14View source

What stands out

A quick read of the recorded project description.

01

Next.js 16 App Router and RSC, TypeScript strict mode

02

Server-side Server Component handles exchanging identity for an HMAC-signed SDK token

03

Client component loads @liqaa/js and renders a call button

04

/api/webhooks/liqaa provides a webhook handler with HMAC verification and replay protection

05

Includes Tailwind CSS v4 (optional), ESLint, Prettier, and a strict tsconfig

06

Supports one-click deployment to Vercel and prompts for configuring three environment variables

Template Details

This template is a Next.js 16 starter project that integrates LIQAA video calls into the App Router structure. The README states it includes: Next.js 16 using App Router and RSC, TypeScript strict mode, a Server Component that exchanges identity for an HMAC-signed SDK token on the server, a Client Component that loads @liqaa/js and displays a call button, and a webhook handler at /api/webhooks/liqaa (with HMAC verification and replay protection). It also includes Tailwind CSS v4 (the README notes it can be skipped), ESLint, Prettier, and a strict tsconfig, and supports one-click deployment to Vercel.

The template itself does not provide authentication, a database, or UI design beyond the bare minimum: the example uses a hardcoded user, and the README explicitly positions it as a "clean foundation" rather than a finished product, requiring you to add authentication and interface yourself. The project layout is app/page.tsx (Server Component, obtains sdk_token), app/liqaa-button.tsx (Client Component, calls LIQAA.startCall()), app/api/webhooks/liqaa/route.ts, and lib/liqaa.server.ts (server-only exchangeIdentityForSdkToken()).

For environment variables, the README lists LIQAA_PK (public key, usable in the browser), LIQAA_SK (secret key, server-side only), and LIQAA_WEBHOOK_SECRET (the signing secret returned only once when creating a webhook). For local development, copy .env.example to .env.local, obtain keys from liqaa.io/console, and use the npx @liqaa/cli webhooks create command to obtain the webhook signing secret. Deployment can use the Vercel one-click flow (which prompts for the three environment variables) or manually run npm run build and npm run start. The README does not describe testing, performance, or production environment validation for this template.

Next.jsReactStarter

Is it right for your project?

Use Cases

  • Add LIQAA video calling capabilities to an existing or new Next.js project
  • Integration approach requiring server-side SDK token issuance and client-side call initiation
  • Receive and verify LIQAA webhook events (such as call.started, call.ended)
  • Quickly deploy a working call demo or prototype via Vercel

Suitable For

  • Developers using Next.js App Router and planning to integrate LIQAA video calls
  • Teams that want to provide their own authentication and database and only reuse the call integration skeleton
  • Engineers who need a reference implementation for server-side token issuance and webhook verification

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Use npx degit hartemyaakoub/liqaa-template-nextjs my-app to get the template, then npm install

  2. 2

    Copy .env.example to .env.local and configure LIQAA_PK, LIQAA_SK, LIQAA_WEBHOOK_SECRET

  3. 3

    Obtain keys from liqaa.io/console, and use npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended to obtain the webhook signing secret

  4. 4

    Run npm run dev locally and visit localhost:3000 to see the call button

  5. 5

    Deployment can use the Vercel one-click flow, or manually run npm run build and npm run start

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope is the code of that version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of that version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone cannot be used to judge them.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • Before running the template, LIQAA environment variables must be configured: LIQAA_PK (public key) and LIQAA_SK (server-side secret key) must be set in .env.local, otherwise the integration will not work.
  • Webhook functionality requires the LIQAA_WEBHOOK_SECRET signing secret, which is returned only once when creating the webhook and must be stored securely.
  • You must register and obtain LIQAA keys from liqaa.io/console, which is an external service account dependency.
  • Obtaining the webhook signing secret requires the npx @liqaa/cli webhooks create command, which depends on the official LIQAA CLI tool.
  • The template does not include authentication; you must integrate a third-party authentication solution such as NextAuth, Clerk, or Lucia yourself.
  • The template does not include a database; the example uses a hardcoded user, and actual use requires integrating your own data storage.
  • The template is positioned as a clean foundation skeleton rather than a finished product; you must add authentication and UI yourself before using it in a real product.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

echo "LIQAA_PK=pk_live_…" >> .env.local

Original README

LIQAA_WEBHOOK_SECRET=whsec_… # signing secret (returned once when you create a webhook)

Original README

- Get your keys from [liqaa.io/console](https://liqaa.io/console)

Original README

- Get your webhook signing secret with `npx @liqaa/cli webhooks create http://localhost:3000/api/webhooks/liqaa call.started call.ended`

Original README

- Authentication (bring your own — NextAuth, Clerk, Lucia, etc.)

Original README

- Database (the example uses a hard-coded user)

Original README

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

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

Compiled by DeepSeek based on repository license and README ·2026-10-14. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 88 / 100
Technologies
Next.js · React
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-07-27
Screenshot last checked
2026-10-14

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15

Inspect the recorded source material

SHA-256: b5414c60ad72fa541b540e25fcc6fd0e19fa5aded0439cb9f4fd1cfdb554c93e

2026-10-14T17:16:33.744Z

Source file / repository
<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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.