Developer Documentation

Note

This is the landing page for documentation relevant to developers of the Open edX platform. For other documentation resources targeted for edX learners, educators, researchers, and Open edX operators, see docs.edx.org.

Getting Started

In a hurry to start writing code? Go set up Devstack, our local Docker-based development environment.

New Contributors

Welcome contributors! There are many ways of contributing to the code and the goal of this documentation is to help you with just that!

Ways to Contribute

There are many different ways to contribute to the platform.

Translations

To be a useful platform for everyone everywhere, translations are critical. If you have knowledge or expertise in languages other than English, we could use your help to translate the platform to other languages.

Getting Started with Translating.

Bug Fixes

Have you been using or operating or using an Open edX site and found a bug you want to fix? We would love your help!

A few things you need to know:

New Features

Got a great idea for how to improve the platform? The more the merrier! The Open edX platform can be added to in many different ways. Take a look at the options below and come talk to us if you’re not sure which one is the best for you.

Ways of Adding new Features to the Open edX Platform

New XBlock

XBlocks build on top of a well-defined interface in the Open edX platform and do not require review from the Open edX team. If you want to add a new problem type or content presentation that would be shown to a learner as a part of a course, you probably want to build a new XBlock.

Before you do that, check out XBlocks that others have built in case they fulfill your needs.

If you’re ready to build one, check out our Intro to XBlocks

New Plugin

Plugins can be built independently of the core platform and do not require review from the Open edX team to build or use. If you want to add a new feature outside of courseware (learner/educator/operator experience) a new platform plugin might be a great option for you.

Check out this overview of our Django plugin design to get started.

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.

Other useful things you need to know:

Other General Docs

Architecture and Best Practices

Open edX Technology Radar

A bird’s eye view of the decisions, tools and technologies that have been adopted or rejected for Open edX development.

Open edX Proposals

Technical decisions made by the Open edX community, in the form of best practices, architecture design, or development processes.

Architecture and Engineering Confluence page

Confluence page for notes, thoughts, and project-related documents on Open edX architecture and engineering.

Open edX Micro-frontend Developer’s Guide

General guidelines for developing micro-frontends in the Open edX platform.

(Legacy) Open edX Developer’s Guide

General guidelines for developing on various parts of the Open edX code base.

Open edX Development

Devstack

The local development environment for developing in the Open edX platform.

Open edX Named Releases

Information on each stable Open edX named release.

Open edX Extensions and APIs

Landing page for supported APIs and extensions to the Open edX platform.