CourseLit is a self-hostable, open-source learning management system (LMS) designed for creators who want to sell online courses, digital downloads, and run blogs and communities without relying on SaaS platforms like Teachable or Thinkific. It provides a complete stack for monetizing knowledge — from course authoring and payment processing to website building and email marketing — all under your control.
Built with TypeScript and powered by a monorepo architecture using Pnpm workspaces, CourseLit integrates MediaLit for media storage and supports deployment via Vercel or Docker. It includes a no-code page builder, Stripe payments, graded quizzes, and customizable domains, making it ideal for technical and non-technical creators seeking full ownership of their data and customer relationships.
What You Get
- Course Authoring - Create rich online courses with embedded images, videos, and downloadable files; set free or paid access tiers.
- Digital Downloads - Sell ready-made assets like ebooks, templates, and infographics directly from your branded website without third-party platforms.
- No-Code Website Builder - Design and publish landing pages, product pages, and blog sections using a visual editor with drag-and-drop functionality.
- Integrated Blogging - Publish SEO-optimized blog posts natively within the platform, with built-in metadata and structure for search engines.
- Email Automations (Beta) - Send targeted marketing emails to your audience without integrating external tools like Mailchimp or ConvertKit.
- Communities (Beta) - Create paid or free member communities where users can interact via text, images, and videos directly on your site.
- Stripe Payment Processing - Accept payments for courses and downloads with built-in Stripe integration and subscription support.
- Graded Quizzes - Add assessments to your courses with automatic grading and progress tracking for students.
- Custom Domains & SSO (Enterprise) - Use your own domain name and enable Single Sign-On for enterprise users.
- MediaLit Integration - Use the MediaLit cloud service (or self-host it) to store and serve course media files securely.
Common Use Cases
- Running a paid membership newsletter - A journalist uses CourseLit to publish premium articles behind a paywall, embed video interviews, and send automated email digests to subscribers.
- Selling online coding courses - A bootcamp instructor hosts video lessons, downloadable code samples, and quizzes on their branded site using CourseLit’s course builder and Stripe payments.
- Monetizing digital templates - A graphic designer sells Canva templates and PDF guides as digital downloads with a built-in checkout page and download links after purchase.
- Building a community-based learning platform - A yoga instructor creates a private community for paying members to post videos, ask questions, and access exclusive blog content—all within one platform.
Under The Hood
Architecture
- Monorepo structure with clear separation between applications and shared logic packages, enabling independent development and reuse
- Event-driven design with decoupled service layers for notifications, using typed interfaces to define input contracts
- Dependency injection implemented through modular service registration, avoiding hard-coded dependencies
- React/Next.js frontend with component-based UI strictly separated from business logic via TypeScript interfaces
- Backend API routes mapped directly to dedicated job handlers, enforcing single-responsibility principles
- Testing infrastructure uses isolated environments with in-memory database instances for reliable integration tests
Tech Stack
- Full-stack TypeScript ecosystem with Next.js for server-rendered frontend and Express for APIs, backed by Mongoose for data modeling
- Monorepo managed via pnpm workspaces, unifying development across web, queue, and documentation applications
- Comprehensive testing tools including Jest, React Testing Library, and in-memory MongoDB for isolated test execution
- Advanced tooling with ESLint, Prettier, and Husky to enforce consistent code style and quality at commit time
- Astro-based documentation site with React/Preact and Algolia search for static content discovery
- Production-grade observability via OpenTelemetry, job queuing with BullMQ, and automated CI/CD pipelines
Code Quality
- Extensive test coverage across all layers with robust mocking of components, contexts, and external services
- Strong separation of concerns between UI, data models, GraphQL logic, and utilities, enhancing maintainability
- Comprehensive TypeScript usage for type safety in models, contexts, and API layers, reducing runtime errors
- Domain-driven code organization with clear module boundaries aligned to business capabilities
- Centralized error handling in GraphQL layers, though custom error classes are absent, limiting granular debugging
- Rigorous linting and test configuration practices reflect mature engineering discipline and predictability
What Makes It Unique
- Native certificate generation with customizable templates embedded in course management, eliminating external PDF dependencies
- Unified GraphQL data layer across web and admin interfaces, powered by reusable components and shared models
- Extensible UI component library with context-aware hooks and theme utilities that serve both dashboards and public pages
- Dynamic theme persistence using localStorage with automatic system preference detection, implemented without external libraries
- Accessibility features like focusable code blocks and semantic ARIA patterns deeply integrated into core components
- Custom collapsible and sheet components built on Radix UI with tailored animations optimized for course workflows