Skip to content

Open edX — Codebase Overview

Repository Ecosystem

Unlike its competitors (Canvas, Moodle, Sakai, Chamilo, ILIAS) — which are each a single primary repository — Open edX is a distributed system composed of many repositories across the openedx GitHub organization. The codebase has evolved from a Django monolith into a platform with a core application, independent microservices (IDAs), and a micro-frontend (MFE) layer.

FieldDetail
GitHub Orggithub.com/orgs/openedx
Primary Repoopenedx/openedx-platform
Stars (platform)8,059
Forks (platform)4,258
LicenseAGPL-3.0
Primary LanguagePython (Django), JavaScript/TypeScript (React MFEs)
GovernanceAxim Collaborative (non-profit)

Data retrieved April 2026


Core Platform: openedx-platform

The heart of Open edX is openedx-platform (historically called edx-platform). This is a Django monolith that contains both the LMS (learner-facing) and Studio/CMS (author-facing) applications.

Tech Stack

  • Backend: Django (Python) — one of the larger Django applications in production
  • Database: MySQL (primary relational store); MongoDB (course block storage, actively being migrated away from)
  • Cache / Queue: Redis for caching, sessions, and Celery task brokering
  • Task Processing: Celery for async jobs (grade recalculation, bulk email, course exports)
  • Search: Meilisearch (newer deployments) or Elasticsearch (legacy)
  • Frontend: React + Paragon (for MFEs); legacy Mako templates still present in the core
  • Build: Webpack (core templates), node/npm (MFEs)
  • APIs: REST API (DRF) throughout; JWT-based authentication
  • Standards: LTI 1.1 and 1.3 (consumer and provider), SCORM via XBlock, xAPI via event routing, Common Cartridge import/export

Architecture Highlights

  • LMS + Studio: Both applications live in the same repo and share Django models. Studio is the course authoring interface; the LMS is the learner interface.
  • XBlock system: Course content is built from XBlocks — pluggable Python components. The XBlock API separates content rendering and student state storage from the LMS core.
  • Plugin architecture: Django apps can be added via INSTALLED_APPS and platform hooks; the Hooks & Filters framework enables extension without forking.
  • MongoDB dependency: Course structure and content is stored in MongoDB (the modulestore). A multi-year migration to MySQL-backed storage is underway via the newer learning-core block system.
  • Celery workers: Multiple specialized queues (lms.default, cms.default, lms.high_priority, etc.) for different workloads.

Release Model

Open edX follows a named release cycle rather than semver. Releases are named alphabetically (Quince, Redwood, Sumac, Teak, …) and published approximately every 6 months. Each release is supported for one full release cycle. Named releases are cut from openedx-platform main and tagged; Tutor builds are provided for each named release.


Independently Deployable Applications (IDAs / Microservices)

Open edX has decomposed several capabilities into standalone Django services. Each IDA has its own database and communicates via REST APIs and events.

RepositoryStarsDescription
course-discovery60Course and program catalog / metadata service. Powers search and enrollment in multi-course deployments.
credentials25Issues and stores course and program certificates. Supports Open Badges.
edx-enterprise49Enterprise enrollment, licensing, reporting, and SSO integration for B2B deployments.
license-manager37Django service for managing subscription licenses (used by edX for Business and enterprise deployments).
forum5Discussion forum service — a Python/Django rewrite of the legacy Ruby/MongoDB forum.
xqueue38Interface between the LMS and external code grader services (for programming assignments).

Micro-Frontend Applications (MFEs)

The Open edX frontend is being migrated from server-rendered Mako templates to standalone React applications (MFEs). Each MFE is a separate repository, deployed independently, and communicates with backend services via REST APIs.

RepositoryStarsDescription
frontend-app-learning70The primary learner course experience — courseware, navigation, sequence rendering.
frontend-app-authoring16Studio course authoring MFE — the modern React replacement for the legacy Django-rendered Studio.
frontend-app-learner-dashboardLearner dashboard (My Courses, program enrollment).
frontend-app-discussionsDiscussion forum frontend, paired with the forum IDA.
frontend-app-instructor-dashboardInstructor tools — bulk grade, cohort management, data downloads.
frontend-app-oraOpen Response Assessment (ORA2) student-facing MFE.

All MFEs are built with React, use Paragon for UI components, and share the frontend-platform framework for authentication, logging, and i18n.


Core Framework Libraries

RepositoryStarsDescription
XBlock468The XBlock Python framework — the extensible component system for building custom learning content.
openedx-events12Open edX Events (Hooks Extension Framework) — Django signals with Avro schemas for event-driven extensions.
openedx-filters10Open edX Filters (Hooks Extension Framework) — pipeline filters for modifying platform behavior at defined extension points.
paragon136Accessible, theme-ready React design system for all Open edX frontends.
edx-ora265Open Response Assessment suite — peer review, staff grade, self-assessment workflows.
opaque-keysKey system for uniquely identifying courses, blocks, and users across the platform.
codejail474Secure sandboxed Python code execution using Linux namespaces (used by CodeResponse and custom graders).

Development Activity

openedx-platform is actively maintained with multiple commits per day as of April 2026. The project operates through a community governance model:

  • Axim Collaborative: Non-profit steward, manages the project roadmap and working groups
  • Core Committers: Trusted contributors with merge access; many employed by Open edX providers (OpenCraft, eduNEXT, Edly, etc.)
  • OEPs (Open edX Proposals): Architectural decisions documented via the openedx-proposals repo
  • BTR (Build-Test-Release) working group: Manages the named release process
  • Named release cadence: ~6-month release cycle with LTS support for institutional deployers

Recent development areas (early 2026):

  • MongoDB → MySQL migration: The multi-year effort to eliminate the MongoDB modulestore dependency continues via the new block storage system
  • MFE consolidation: Merging multiple MFE repos into fewer applications via frontend-base
  • Hooks & Filters maturation: More extension points being added to reduce the need for platform forks
  • AI integrations: Community contributions adding AI tutor, AI content generation, and assessment assistance features
  • Aspects (analytics): ClickHouse-based learning analytics stack replacing the legacy data pipeline

Architecture Comparison: Open edX vs. Competitor LMS Platforms

DimensionOpen edXCanvasMoodleSakai
Core architectureDjango monolith + IDAs + MFEsRails monolith + some microservicesPHP monolithJava multi-module monolith
Primary databaseMySQL + (MongoDB being phased out)PostgreSQLMySQL/PostgreSQLMySQL/Oracle
Frontend approachReact MFEs (migrating from Mako templates)React (migrating from CoffeeScript/Backbone)Vanilla JS + MustacheVue.js (new) + Handlebars (legacy)
Plugin/extension modelXBlocks + Django plugins + Hooks & FiltersRails engine plugins40+ plugin types, 2,000+ community pluginsMaven module tools
LicenseAGPL-3.0AGPL-3.0GPL-3.0ECL-2.0
Repo count100+ (distributed ecosystem)1 primary + satellite repos1 primary (+ 2,000+ plugin repos)1 primary multi-module repo
Release modelNamed releases every ~6 monthsDate-based continuous (SaaS); quarterly (OSS)Biannual (6-month cycle)Annual

Licensing Implications

Open edX (openedx-platform) is licensed AGPL-3.0, the same as Canvas LMS. This means:

  • Any modifications deployed as a network service must be open-sourced
  • Plugins and XBlocks can use compatible licenses; many commercial XBlocks use proprietary licenses for the business logic while exposing a standards-compliant interface
  • Operators who only deploy without modifying the core are not required to publish changes — the copyleft is triggered only by modification + deployment

The AGPL-3.0 license has occasionally deterred enterprise adopters compared to GPL or Apache-licensed alternatives, but the Open edX ecosystem of commercial providers effectively addresses this by offering managed deployments where operators don't need to modify the core.


Hosting Complexity

Open edX is among the most complex of the open-source LMS platforms to self-host:

  • Multiple services (LMS, Studio, IDAs, MFEs, Celery workers, Redis, MySQL, Elasticsearch/Meilisearch, MongoDB)
  • Significant memory requirements (8GB+ for a minimal production setup)
  • Tutor (the official deployment tool) substantially reduces this complexity via Docker Compose and a plugin architecture for adding IDAs and MFEs
  • Managed hosting by providers (OpenCraft, eduNEXT, Edly, etc.) is the common path for organizations without dedicated DevOps capacity

Individual Codebase Profiles (Competitor Platforms)

Schema Education — Internal Research