AI support that works for your team & customers.
Drop your knowledge base, install the widget, and start taking conversations in minutes.
-
Drop your knowledge - Upload your documents and knowledge base. The AI instantly learns from your content to answer questions accurately.
-
Setup your agent - Install the widget with a single line of code. Customize your AI agent's behavior and appearance to match your brand.
-
Start conversations - Your AI support agent is live. Start taking conversations, manage your inbox, and watch it resolve issues automatically.
-
Smart. Simple. Brilliant. - Your knowledge base is intelligently organized so the AI can find answers instantly without the clutter.
-
Real-time conversation management - Every conversation flows seamlessly between AI and human agents, keeping your team aligned and customers happy.
-
Effortless integration - Add a single line of code to your website and your AI support agent is live. No complex setup required.
-
Conversation analytics - Track resolution rates, escalation patterns, and customer satisfaction with detailed conversation insights.
This is a Next.js monorepo built with Turborepo and pnpm workspaces:
- Framework: Next.js 15 (App Router) with React 19
- UI Components: shadcn/ui + Radix UI
- Styling: Tailwind CSS
- TypeScript: Full type safety
- Database & Backend: Convex (real-time database and serverless functions)
- AI/LLM: Vercel AI SDK + Convex Agent + RAG (Retrieval Augmented Generation) with OpenAI
- Authentication: Clerk (multi-organization support)
- Monorepo: Turborepo
- Package Manager: pnpm
- Build Tool: Vite (for embed script builder)
- Error Tracking: Sentry
- Analytics: Vercel Analytics
- Form Handling: React Hook Form + Zod validation
- Node.js >= 20
- pnpm >= 10.4.1
- Convex account and project
- Clerk account and application
- OpenAI API key
pnpm installCreate a .env.local file with:
NEXT_PUBLIC_CONVEX_URL=your_convex_url
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_keyCreate a .env.local file with:
NEXT_PUBLIC_CONVEX_URL=your_convex_urlConfigure Convex environment variables:
CLERK_JWT_ISSUER_DOMAIN=your_clerk_jwt_issuer_domain
OPENAI_API_KEY=your_openai_api_keyStart all apps in development mode:
pnpm devThis will start:
- Web app on
http://localhost:3000 - Widget app on
http://localhost:3001 - Embed builder on
http://localhost:3002
# Web app only
cd apps/web && pnpm dev
# Widget app only
cd apps/widget && pnpm dev
# Backend (Convex) only
cd packages/backend && pnpm devBuild all apps:
pnpm buildTo add shadcn/ui components to your app, run the following command at the root of your web app:
pnpm dlx shadcn@latest add button -c apps/webThis will place the UI components in the packages/ui/src/components directory.
To use components in your app, import them from the ui package:
import { Button } from "@workspace/ui/components/button"├── apps/
│ ├── web/ # Main Next.js dashboard application
│ ├── widget/ # Widget app for embedding on customer sites
│ └── embed/ # Embed script builder (Vite)
├── packages/
│ ├── backend/ # Convex backend (database, functions, AI)
│ ├── ui/ # Shared UI components (shadcn/ui)
│ ├── eslint-config/ # Shared ESLint configuration
│ └── typescript-config/# Shared TypeScript configuration
apps/web/app/- Next.js App Router pages and layoutsapps/web/modules/- Feature modules (auth, dashboard, inbox, etc.)packages/backend/convex/- Convex functions and schemapackages/ui/src/components/- Reusable UI components
- Monorepo: Managed with Turborepo for efficient builds and caching
- Real-time: Convex provides real-time subscriptions for conversations and data
- AI Integration: Uses Convex Agent with RAG for intelligent responses from knowledge base
- Multi-tenancy: Clerk organizations for team management
- Widget System: Embeddable widget that can be customized per organization