LMS Platform
Open-source, multi-tenant LMS for creators and schools. Every school gets its own subdomain (school.platform.com), its own branding, and its own students. Educators build courses and sell them; students enroll, learn, take exams, and earn verifiable certificates.
Live instance: preciopana.com · Setup: docs/GETTING_STARTED.md · Contribute: CONTRIBUTING.md
Stack: Next.js 16 · React 19 · TypeScript · Supabase (Postgres + Auth + RLS) · Shadcn UI (base-mira) · Tailwind CSS v4 · Stripe Connect · next-intl (en/es)
What's in it
Self-host it, fork it for your own school, or use it as a reference for multi-tenant Supabase + Next.js patterns. MIT licensed.
Prerequisites
- Node.js 20+
- Docker (required for local Supabase)
- Supabase CLI
- Stripe CLI (optional — only for testing webhooks locally)
Quick Start
-
Clone and install
git clone https://github.com/guillermoscript/lms-front.git cd lms-front npm install -
Configure environment
cp .env.example .env.localFor local Supabase, set these four. Run
supabase status(after step 3) and copy its Publishable and Secret keys — they are local-only dev keys, the same on every machine:NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321 NEXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY=<Publishable key from `supabase status`> SUPABASE_SERVICE_ROLE_KEY=<Secret key from `supabase status`> NEXT_PUBLIC_PLATFORM_DOMAIN=lvh.me:3000 -
Start local Supabase (requires Docker)
supabase start npm run db:reset # applies all migrations + seeds tenants, users, courses, products -
Run the dev server
npm run dev -
Open the app at
http://lvh.me:3000— notlocalhostTenant resolution reads the subdomain;
lvh.meresolves*.lvh.meto127.0.0.1. Onlocalhostno tenant resolves and authenticated pages bounce to/join-school.http://lvh.me:3000— Default School (free plan)http://code-academy.lvh.me:3000— Code Academy Pro (enterprise plan)
-
Log in with a seeded account (all passwords
password123), on the subdomain matching its tenant:Local-dev credentials only — seeded by
npm run db:reset.
Full walkthrough — seed contents, migrations, tests, optional services, troubleshooting: docs/GETTING_STARTED.md.
npm Scripts
Documentation
docs/GETTING_STARTED.md— full local setup guide: env, seed data, migrations, tests, troubleshootingCLAUDE.md— architecture reference for AI agents and developersdocs/DATABASE_SCHEMA.md— complete DB schemadocs/AUTH.md— authentication flowsdocs/MONETIZATION.md— billing and paymentsdocs/MCP_SETUP.md— the MCP server and AI tutor tooling
More in docs/ — deployment, i18n, gamification, community spaces, the landing-page builder.
Contributing
Contributions are welcome — bug reports, translations, docs fixes, new payment providers, features.
- Read
CONTRIBUTING.mdfor the workflow and what reviewers look for - Browse
good first issueandhelp wanted - Questions and ideas: Discussions
- Found a vulnerability?
SECURITY.md— please report it privately - By participating you agree to the Code of Conduct
License
MIT — free to self-host, fork, and build a business on.