leanlearn is a modern, high-performance Learning Management System (LMS) built for speed and simplicity. It leverages a Cloudflare-native stack (Pages, D1, Workers) to provide a "Lean" experience for both learners and developers.
Explore the Docs Β· Report Bug Β· Request Feature
Get Started with leanlearn
Intuitive Student Dashboard
Course Completion View
Generated Digital Certificate
Detailed Learner Profile & Progress
Secure Authentication
- π Robust Authentication: Secure Google OAuth integration powered by Better Auth.
- π Structured Learning: Hierarchical courses, chapters, and activities (Text/Video).
- π Progress Persistence: Real-time progress tracking with automatic saving to Cloudflare D1.
- π Automated Certification: Earn printable A4 landscape certificates upon 100% course completion.
- π Learner Profile: Aggregated statistics including average progress and earned certificates.
- β‘ Performance Optimized: Parallel data fetching, aggressive asset caching, and minimal bundle size.
- Framework: React Router v7 (Full-stack)
- Server: Hono (Lightweight & Cloudflare-ready)
- Database: Cloudflare D1 (Edge SQLite)
- ORM: Drizzle ORM
- Auth: Better Auth
- Testing: Vitest
- Styling: Vanilla CSS Variables (The "Lean" way)
- Node.js >= 20
- Cloudflare Wrangler CLI
-
Clone the repository:
git clone https://github.com/adityak74/leanlearn.git cd leanlearn -
Install dependencies:
npm install
-
Configure Environment: Create a
.dev.varsfile for local development:BETTER_AUTH_SECRET="your_secret" BETTER_AUTH_URL="http://localhost:5173" GOOGLE_CLIENT_ID="your_google_id" GOOGLE_CLIENT_SECRET="your_google_secret"
-
Initialize Local Database:
npx drizzle-kit push --config=drizzle.dev.config.ts node scripts/seed-local.js
-
Start Developing:
npm run dev
For detailed instructions, see the Setup Guide.
βββ app/
β βββ db/ # Schema and Database Helpers
β βββ lib/ # Shared libraries (Auth client, etc.)
β βββ routes/ # Page routes and API endpoints
β βββ styles/ # Global styling (app.css)
β βββ root.tsx # Root layout and global providers
β βββ server.ts # Hono server entry point
βββ migrations/ # D1 migration files
βββ scripts/ # Seeding and maintenance scripts
βββ tests/ # Vitest integration tests
βββ wrangler.jsonc # Cloudflare deployment config
Run the automated test suite to verify business logic:
npm testYou can deploy this entire stack (including D1 database setup) directly to Cloudflare using the button below:
Deploy to Cloudflare Pages manually using the Wrangler CLI:
npm run deployNote: Ensure you have your D1 database and KV namespaces configured in wrangler.jsonc before manual deployment.
Distributed under the MIT License. See LICENSE.md for more information.
Built with β€οΈ by Aditya Karnam
