Courselit
Create/Sell courses and digital downloads and publish blogs on your own branded website. An open source alternative to Teachable, Thinkific, Podia and the likes.
Install / Use
/learn @codelitdev/CourselitREADME
A modern LMS for everyone
CourseLit is a batteries included learning management system (aka LMS) for everyone. It is an open source alternative to Teachable, Thinkific, Podia, Teachery, LearnDash and the likes.
It comes pre-equipped with all the basic tools you need to efficiently run and administer your online teaching business. Features include course authoring, student management, payment processing (via Stripe), website builder, custom sales pages and analytics (very limited as of now).
Check out this live example to see what you can build with CourseLit. Click here.
Screenshots
1. A real landing page build with CourseLit

2. Admin dashboard

Features
Checkout our documentation for an updated list of features.
Getting started
Visit courselit.app to use the cloud hosted version. Sign up for a free account to get a 14 days trial period to experience the platform without any restrictions. No credit card required.
To self host CourseLit, follow our official guide.
Development
The project is organised as a mono-repo. It uses Pnpm workspaces for managing the mono-repo.
To set up the development environment, first clone the project on your local machine and cd to its diretory.
Then replace the values in .env file located inside the apps/web folder with your enviroment's configuration.
Now run the following commands from the root directory of the project.
# Install dependencies
pnpm install
# Build the packages
pnpm build
# Start the app
pnpm dev
That's it! Now you can dive into the code base.
Releasing packages
We use changeset to automate at the process of publishing packages to NPM.
Run the following command to add a changeset
pnpm exec changeset
Medialit
CourseLit uses MediaLit as its backend for managing media assets. It is a paid service and you need to have an account on it to store your files in the cloud.
If you do not want to use the cloud hosted version, you can roll your own instance. Add the following config to the .env file to use your own MediaLit instance.
MEDIALIT_SERVER=medialit_server_location
Writing your own widget
You can add additional functionality to your application via building your own widgets. Have a look at this document.
Environment variables
Have a look at the docker-compose.yml file to know what all environment variables are available for you to tweak.
Applying DB Migrations
The migrations are located in the apps/web/.migrations directory. The migrations are named like DD-MM-YY_HH-MM-<migration-purpose>.js so that they can be sorted chronologically.
To Apply a Migration
Since the migrations are complete scripts, you need to have some development chops—not much, though.
- Initialize a blank Node project. In your terminal, create a blank Node project:
mkdir migration
cd migration
npm init -y
-
Install dependencies.
You can refer to the first few lines of the migration to see which dependencies are required. Most of the time, you'll be good to go after running the following command:
npm i mongoose nanoid
-
Copy the migration script into this new project folder.
-
Run the script:
DB_CONNECTION_STRING=mongodb://<mongodb-url> node migration-script.js
Supported By
<a href="https://vercel.com/oss"> <img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" /> </a>Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
research_rules
Research & Verification Rules Quote Verification Protocol Primary Task "Make sure that the quote is relevant to the chapter and so you we want to make sure that we want to have it identifie
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
