# Moodle / Open edX

A classroom you host. Moodle is GPL-3.0; Open edX and Canvas LMS are AGPL-3.0 — Teachable, Thinkific, and Kajabi without the course-platform seat.

**Replaces:** Teachable / Thinkific / Kajabi

**Tier:** Medium

## Problem

Teachable, Thinkific, and Kajabi sell a hosted course OS: drip, checkout, and a marketing site. You wanted lessons, quizzes, and a gradebook on hardware you control. Moodle is GPL-3.0 (moodle/moodle). Open edX is AGPL-3.0 (openedx/openedx-platform — the repo moved from edx-platform). Canvas LMS is AGPL-3.0 (instructure/canvas-lms) — not Canva, the design SaaS. Ghost covers a paid publication (/replace/medium), not a classroom. This is not Kajabi's every funnel SKU, Teachable's native app store, or Thinkific's every sales add-on. Discourse stays on /replace/skool if the job is a forum.

## Stack

- [Moodle](https://moodle.org) — GPL-3.0 learning platform — the published Teachable/Thinkific/Kajabi path
- [Open edX](https://openedx.org) — AGPL-3.0 LMS and Studio if you want that large-course stack
- [Canvas LMS](https://www.instructure.com/canvas) — AGPL-3.0 Instructure LMS — not Canva

## Estimated SaaS cost saved

| You stop paying | Typical / year | Self-host instead |
|---|---:|---|
| Teachable / Thinkific / Kajabi (small team) | $2,400 | Moodle or Open edX + a database |

**About $2,400 / year** on a small team, before you count lock-in.

## Deploy on Railway

Placeholder: Moodle (PHP + MariaDB) or Open edX (several services) plus a volume. Canvas LMS is the other AGPL classroom. This is not a one-click marketing OS. No template in this repo yet — Start on Railway. Memberships stay on /stacks/ghost-cms.

[Start on Railway](https://c17.io/go/railway/moodle-lms?from=%2Fstacks%2Fmoodle-lms.md)

[Ghost if this is a paid publication, not a classroom](https://c17.io/stacks/ghost-cms)

## AGENT_PROMPT

```
Replace Teachable, Thinkific, or Kajabi with Moodle (preferred) or Open edX.

- Official docs. Persist the database and file volume. Create one course and one quiz. Do not claim Kajabi funnels or a native app store.
- Canvas LMS if that Instructure classroom is the product you already know — slug canvas-lms, not Canva.
- Ghost if the job is a paid publication — /stacks/ghost-cms. Write AGENT_PROMPT.md.
```

## FAQ

### Moodle or Open edX?

Moodle if you want the common GPL classroom (the published Teachable path). Open edX if you want Studio and a large-course stack — /compare/moodle-vs-openedx. Canvas LMS is /compare/moodle-vs-canvas.

### Is this Kajabi's marketing OS?

No. You get courses and a gradebook. Checkout pages, drip funnels, and a landing-page builder stay behind.

### Why not Ghost?

Ghost is a publication and memberships — /replace/medium. This page is a classroom.

Source: https://c17.io/stacks/moodle-lms
