All XModules converted to XBlocks
All XModules converted to XBlocks
All XModules converted to XBlocks

Sign Up
for Our Blog
& Newsletter.

Sign up to receive email updates on the latest news from OpenCraft

This blog post was co-authored by OpenCraft team member Usman Khalid and edX team member Dave Ormsbee.

It is with great excitement that we're announcing that all the XModules in the Open edX platform have recently been converted into XBlocks.

What are XModules?

XModule was the original framework for course components in edx-platform, and the predecessor of the XBlock framework. When the XBlock framework was introduced into edx-platform in 2013, because of the numerous XModules in use, a compatibility layer was written to allow an incremental transition to the new framework. This compatibility layer allowed the XModule infrastructure to run XBlocks and for XBlocks to see the XModule infrastructure as the XBlock Runtime.

XModules and XBlocks had different life-cycle properties and in some cases different APIs for the same features. This transition state was dubbed “peak confusion” by the edX engineering team to express the idea that it would be an extremely confusing time for the courseware internals, but that we could eventually come down from that complexity once XModules were removed.


Over the years a number of lesser-used XModules were deprecated and removed. In 2015, the Vertical XModule was converted and in 2016 the Discussion XModule was converted.

When the Blockstore project was started, the decision was made that it would only support XBlocks and a new XBlock Runtime was written for it. As part of the work, the Video, HTML and Problem XModules were converted to XBlocks.

The remaining fifteen XModules have been converted to XBlocks through a months-long blended development effort by OpenCraft and the edX T&L team.

Why is this important?

With the system now only hosting XBlocks and not constrained by having to maintain backward compatibility with the old framework, it becomes possible to significantly simplify the courseware internals. This will make the system a lot more approachable for developers and significantly reduce the complexity of big jumps in capabilities of courseware.

We are looking forward to seeing these developments in the future!

Photo by Hunter Harritt on Unsplash

Other Articles

June 2023: OpenCraft Quarterly Catch Up

It’s that time again. Our quarterly catch up is here, and I’m about to dish out the hottest goss on all things […]

12-22 Newsletter — Olive Release, Listaflow, Call For Proposals

[Olive Released 🫒] The fifteenth Open edX community release, called Olive, is now out! The release was coordinated by the Open edX […]
A ghost in a field

Demystifying User Retirement in the Open edX platform

This article was written by team member Kaustav Banerjee. User Retirement in an Open edX platform is the very last […]
Back to News