SaaS platform that lets business owners connect their WhatsApp and Google Calendar so an AI agent can handle bookings and lead qualification automatically.
- Next.js 15 (App Router) — dashboard + webhooks + API in one deploy
- Clerk — auth + multi-tenant organizations
- Neon Postgres + Drizzle — serverless DB with type-safe queries
- Inngest — durable async functions (AI + calendar work runs here, not in webhook handlers)
- OpenAI Assistants API — per-conversation threads + function calling
- Meta WhatsApp Cloud API — direct, no third-party wrapper
- Google Calendar API — free/busy + event management
- Node.js 22+
- pnpm 9+ (
npm i -g pnpm@9) - A Meta App with WhatsApp product enabled
- A Clerk application
- An OpenAI account
- A Neon database
cp .env.example .env
# fill in all values in .env
pnpm install
pnpm dev # starts Next.js on http://localhost:3000Use Cloudflare Tunnel (no account needed):
cloudflared tunnel --url http://localhost:3000Copy the https://...trycloudflare.com URL.
- Go to Meta App Dashboard → your app → WhatsApp → Configuration
- Under Webhook, click Edit
- Callback URL:
https://<your-tunnel-url>/api/webhooks/whatsapp - Verify token: the value you set for
WHATSAPP_VERIFY_TOKENin.env - Click Verify and Save, then subscribe to the messages field
pnpm test # vitest (unit)apps/web/ Next.js app (dashboard + API)
packages/db/ Drizzle schema + migrations
packages/shared/ Zod types shared across packages
CLAUDE.md Rules for AI-assisted development
See .env.example for the full list with descriptions.