Platform Overview#
The Open edX Platform is made up of multiple web services that work together to provide all the tools you might need to build and run courses online.
Tech Stack#
While there are a few exceptions, for the most part the technology stack for the Open edX Platform uses Django for backend services and React for the frontend. The frontend consists of multiple frontend apps which are usually referred to as MFEs (Micro-FrontEnds) within the ecosystem and community.
The core code base lives on GitHub in the openedx organization.
If you want more details about the tech stack, check out this video:
Platform Layout#
While the platform contains many services such as MFEs and libraries, the core of the platform lives in the openedx-platform and frontend-platform repositories.
openedx-platform - This was the first service created in the Open edX ecosystem and contains the legacy monolith application. That application currently can run in two modes: LMS and Studio.
As the LMS (Learning Management System), it acts as the backend for learners’ data as they go through courses and programs, and it serves some legacy UI elements.
As Studio, it is the CMS (Content Management System) where instructors and course authors can build the course content that learners will consume.
frontend-platform - This is a newer core system meant to ease the creation of multiple MFEs by bundling together many common utilities that all frontends need. This includes things like authentication workflows, logging, monitoring and translations related tooling.
Along with these two core systems, there exist a number of other backend services and MFEs which can be found on GitHub.
Libraries#
In addition to the backends and frontends mentioned above, the platform is made of numerous libraries that live in the openedx organization. These libraries accomplish a variety of different tasks. More details about what they do can be found in their READMEs.
Exceptions#
While the above summary covers most of the system, there are a few exceptions.
Non-React Frontends#
The Open edX Platform is currently still in the process of moving to React based MFEs. Previously frontend content used to be served by the Django services. This means that there are still many parts of the system that use Django Template based rendering pipelines to serve frontend content to users.
Note
An exception to the exception. In openedx-platform rather than using the default Django templates, django is setup to use Mako based templates.
Adding new Features to the Open edX Platform#
If you’re looking to add new features to the Open edX Platform, we recommend extending the platform rather than trying to make changes to the core.
The modular Open edX platform provides many extension points that don’t require modification to the core codebase or review from the Open edX community. These include:
Frontend plugin “slots” for UI customization
XBlocks, a composable framework to enable rapid development and pluggability of new content types
Hooks Extension Framework for modifying the platform’s functionality and flows
Design tokens for theming customization
Check out the Sample Plugin for documentation and examples of leveraging the various Open edX extension points.
New update to the core platform#
If we don’t have extension points for the kind of change you want to make, you might need to make a change to the core source. This can be complex and we encourage you to reach out to us to talk about the kind of changes you want to make.
Two quickstarts are provided for developers looking to jump in and contribute to the open-source Open edX project. The Pull Request Quickstart goes through the GitHub “pull request” workflow all developers who contribute must follow. You’ll learn how to set up a development environment and at the end will have made your first pull request to the project.
The Contributing Quickstart builds on the Pull Request Quickstart to guide you through the process of making a more substantial change to the platform. It discusses both technical and product considerations.
The Open edX contribution course and the Developer onboarding course are additional, helpful resources.
Maintenance chart
Review Date |
Working Group Reviewer |
Release |
Test situation |
2025-03-25 |
sarina |
Ulmo |
Pass |