A modern Learning Management System (LMS) SaaS app built with Next.js, Supabase, Stripe, Clerk, and Vapi. This project enables users to:
- Authenticate and manage subscriptions
- Interact with AI voice agents
- Bookmark and revisit sessions
- Seamlessly learn in real time
You’ll get hands-on experience with full-stack SaaS development using cutting-edge tools.
| Technology | Description |
|---|---|
| Next.js | React-based framework for server-side rendering and static site generation |
| Tailwind CSS | Utility-first CSS framework for fast UI development |
| Clerk | Authentication and user management platform |
| Supabase | Real-time database and authentication (PostgreSQL-based) |
| Vapi | AI voice assistant platform for real-time, low-latency voice interaction |
| Stripe | Payment and subscription management |
| shadcn/ui | Pre-built UI components based on Radix UI & Tailwind CSS |
| Zod | TypeScript-first schema validation |
| Sentry | Real-time error tracking and performance monitoring |
- 🎙 AI Voice Agents — Talk to AI tutors trained on your selected topics.
- 🔐 Authentication — Secure sign-up/sign-in with social logins via Clerk.
- 💳 Subscriptions — Manage billing, upgrades, and access levels.
- 📌 Bookmarks & History — Save tutors and revisit past sessions easily.
- 🧠 Custom AI Tutors — Create your own AI tutor by selecting topics and tone.
- 🔍 Search Tutors — Quickly find tutors via filters and search bar.
- 📱 Responsive UI — Works perfectly across all screen sizes.
- ⚡ Real-time Data — Integrated with Supabase for live updates.
- 🧩 Modular Codebase — Reusable components and clean architecture.
- 🎨 Modern UI — Built with Tailwind CSS and shadcn/ui.
Make sure you have the following installed:
Install the project dependencies using npm:
npm installSENTRY_AUTH_TOKEN=
NEXT_PUBLIC_VAPI_WEB_TOKEN=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/ NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/
NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY=
npm run dev