A real-time, AI-driven learning platform that lets students (from kindergarten all the way to high-school) build personalised voice companions that guide them through interactive lessons.
• Custom Voice Companions – Create tutors with their own name, avatar, subject focus, tone and duration.
• Real-time Conversation – Powered by the Vapi web SDK for low-latency voice chat.
• Auth & Profiles – Secure user management via Clerk.
• Supabase Back-end – Store companions, sessions and progress in a Postgres database with row-level security.
• Modern UI – Built with Next.js App Router, Tailwind CSS and Shadcn UI.
• Analytics & Monitoring – Error tracking and performance insights through Sentry (Edge + Server).
👉 Watch the full walkthrough video: converso-screencast.mp4
# clone
git clone https://github.com/ivioje/lms-with-vapi.git
cd lms-with-vapi
npm install
Create a .env.local
file at the project root and populate the following keys:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=<your-supabase-url>
NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key>
# Vapi (voice SDK)
NEXT_PUBLIC_VAPI_WEB_TOKEN=<your-vapi-token>
# Clerk (authentication)
CLERK_SECRET_KEY=<server-secret>
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<publishable-key>
# (Optional) Sentry
SENTRY_DSN=<your-sentry-dsn>
npm run dev
Open http://localhost:3000 in your browser and start building companions!
Layer | Tech |
---|---|
Front-end | Next.js 15 • React 19 • TypeScript • Tailwind CSS |
UI Components | Shadcn UI • Lucide Icons |
Auth | Clerk (multi-tenant, social logins, plan subscription, billing etc.) |
Back-end / DB | Supabase (Postgres + Row Level Security) |
Real-time Voice | Vapi.ai Web SDK |
Dev & Ops | ESLint • Prettier • Sentry Monitoring |