Open edX

How to Contribute to Open edX

Have you ever thought to join to a great community like Open edX? This is your shot! You will be involved in a big Django project learning new skills and keeping in touch with people around the world building different parts of the architecture.


First of all, you need a virtual machine in order to test all the amazing features you want to create. If you have ever contributed to a big software project you already know that taking the first steps is hard. Nevertheless, Open edX provides you with images that you can use and launch your development faster.

There are three kind of environments:

  • Devstack - intended to develop your features or experiment in your local machine

  • Fullstack - intended to experiment and not ready for production because every service is hosted on the same machine

  • Native - the environment you want to use if you are deploying an Open edX production-ready. More complicated but more secure and makes it possible to guarantee performance

  • AMI - Images of Amazon are by far the easiest


The core is associated with the edx-platform repository that contains features, engine and common utilities. If you want to contribute, you can:

  • Begin with byte-bugs

  • Solve complex problems and add new features

How can I contribute to the core?

There are a few steps in order to merge your features in the core!



First of all, you have to research about what you want to contribute and dig into the Open edX communities. You have several choices:

  • Slack Open edX domain (#remotemeetup, #ops, #content) is a good place to start a conversation between its members and figure out if the idea is good

  • JIRA is a platform where you can search and publish issues and it is recommended for bugs and aligned features with the core

  • Google discussions: edx-code, openedx-ops, openedx-translation, openedx-analytics. These are like mailing lists where you can ask any doubt or suggestion.


If you want your code to be merged you will need to sign the Contributor Agreement. Don’t be afraid of this serious contract, it only says that your contribution is your work and your intention is to give it to the community.


Fork the Open edX repository, create your branch, add your name to the AUTHOR file (please, use only one commit with the addition of your name in this file) and start to work. When your feature is complete you will do a Pull Request from your repo to Open edX github. Here are some tips about performing a good request but don’t forget to see the Open edX Cover letter:

  • Background

    • Context about what was happening and if it is reported to JIRA include a link

    • Motivation explaining why the request solves a problem

  • System/component affected

    • CMS, LMS, common

    • Another IDA (forum, …)

    • Need any update on CMS or LMS? Specify if it is needed

  • Impact and priority

    • How is concerned? Students, Teachers, every user, only specific users, the platform.

    • Take a look JIRA priorities, and don’t hesitate to create a new one if it is a bug

  • Testing

    • Try to include automatic tests

    • If you cannot, please include a manual test with images and describing steps to follow in order to 1) reproduce the problem and 2) describe your implemented solution


When you do the Pull Request, Community managers and Product Owners will evaluate if it is interesting to include in Open edX core. If you do the asking step it is almost sure that your feature will be accepted.


Then, you will be in the common pull request contribution flow: get code review, chat in the request, change your code, and so forth. If your request is OK, congratulations! your code will be included in the core and you are officially an Open edX contributor :)

Note: Remember Open edX core (edx-platform) is AGPL-3 so you must publish your code if you make any modification to the code. However, you don’t need to merge the code.

Other contributions: XBlocks and Theming


This blocks are parts of a course, for example: exercises, explanations, HTML, texts, videos, P2P, etc. You can create your own XBlock, just check the XBlock list in order to build something new.

Some useful resources:

You don’t need to make a public repository because the license Apache 2 but if you want to contribute publishing is the way.


If you are a Front-end developer you will be interested in creating your own theme for Open edX. You have two options:

Fork Stanford classic theme. It doesn’t include responsive screens but you may customize it. His license Apache 2.0 doesn’t allow you to publish your code

Fork IONISx responsive theme. Although it has an almost complete responsive theme, you will have to publish your code because his license AGPL-3

In our next posts we will explain you how you can create a new theme and apply it to Open edX, don’t miss it!



About the author

Let’s have a coffee and talk about your project


Let’s have a coffee and talk about your project


We use cookies to ensure you get the best experience on our website. More info.