Headless LMS

Introduction

What Headless LMS is, why it is API-first, and how an installation composes the server.

Headless LMS gives you the full domain of a learning management system — courses, progress, entitlements, and org-scoped multi-tenancy — exposed as a typed API. It is headless by design: build whatever frontend you want on the generated SDK.

Why headless

  • Modern TypeScript. Fastify, Drizzle, and Zod with strict ESM.
  • Composable. Swappable adapters for storage and email; integrations plug in as folders.
  • Secure by default. Authentication, org-scoped multi-tenancy, encrypted credential storage, and validated requests and responses.
  • Headless. Build any frontend you want on the typed SDK.

Quick start

Create a standalone installation using the CLI. It scaffolds a small project that depends on @headless-lms/server, owns its config and plugins, and deploys anywhere Node and Postgres run.

npm create headless-lms

Prefer to explore the source first? Clone the repository and follow the self-hosting guide to run the API, admin dashboard, and student portal locally.

On this page