What is an XBlock?

by Extension Engine | April 24, 2014

Estimated time to read: minutes

XBlock is the SDK for the edX MOOC platform. It's a framework that allows the open source software development community to extend and enhance edX to meet future needs and is written in Python2. XBlock is one of the aspects of edX that makes it such a powerful tool.


Hey, there.

Before you continue reading this article, we'd like you to know that we feel it's a bit outdated. If you'd like to read something more recent that better describes what we do at Extension Engine, take a look at our resources:


If you're here for the article, please continue and pardon the interruption.


XBlock is a component architecture that enables developers to create independent course components, or XBlocks, that are able to work seamlessly with other components in the construction and presentation of an online course. Course authors are able to combine XBlocks from a variety of sources — from text and video to sophisticated wiki-based collaborative learning environments and online laboratories — to create rich engaging online courses. This video gives a little more color on the capabilities and features of XBlocks.

What XBlocks already exist?

There are nearly 20 XBlocks that exist as of today and are currently used by the ~200 courses already on edX.org as well as the many instances of Open edX. They are:

1. CAPA - This is the primary module which defines the behavior of all the other modules. CAPA stands for Corrective Action and Preventive Actions.

2. Annotatable - This is an extension of CAPA module. It can be used to annotate sections of a page, for example, below is a use case asking a student to identify the correct portion of an image.

Annotate Xblock - edX

3. Combined Open Ended - This XBlock is a type of 'Problem' XBlock; think of this as a survey questionnaire method.

4. Conditional - This XBlock is used to change the response based on the input provided by the student in the student view. This is a decision making element in terms of a flowchart representation. The case study below, allows the user to change the voltage, frequency and the output voltage changes form.

Conditional Output

5. Crowdsource Hinter - This XBlock captures the inputs provided by the student to a question(s) across the program. Once the grading has been completed, the report is pulled in.


6. Discussion - In order to engage the end user, it is essential to engage them in a conversation. This XBlock is built with just that purpose in mind. It allows you to respond to the original post and/or to the responses. It is a conversation of conversations.


7. Graphical Slider Tool - A slider tool can be used to house HTML rows, images, videos etc. It is used to allow the user to discover new content by clicking/hover on the direction buttons.


8. HTML - This XBlock is used to render HTML content. If you are looking to embed iFrames or carousels, this is the XBlock to use.

9. Peer Grading - This XBlock is used to grade students in a cohort. When students join a program, they become members of a cohort. The students of a course evaluate other students inline with 360 degree visibility and this module stores the responses of everyone.

10. Poll - Used to gather responses for a Poll. It is a useful tool to collect responses quickly and display results based on the responses.

11. Problem - This XBlock is used to add standard questions which can be open ended, multiple choice, numerical input, drop-down or free text.


12. Sequence - This XBlock is used to start where the student left off the last time. It is used in conjunction with 'Tabs' to depict the progress made on each step. Sequence allows the user to navigate from one step to another.

13. Tabs - This XBlock is a visual representation of where the user is in terms of the whole process. If you notice the screenshot below, it also hosts a progress bar at a step level.


14. Video - This XBlock is used to display a video content. The video can be hosted on any CDN or on any accessible hosting environment. This can be tweaked in order to run a single video or a playlist.


15. Word Cloud - This XBlock creates a word cloud from the input. It is a good visual representation of the words used in a post. The size of the words in the word cloud depend on the number of times the word is repeated.


16. Miller - Used to compute Miller indices. They are used when crystal lattice is being studied.

17. Chemtools - Used to grade VSEPR (Valence Shell Electron Pair Repulsion) problems. It is used to grade/evaluate the responses for the shapes of molecules entered by the students.


18. Symmath tools - Symbolic Mathematics is also known as symbolic computing or algebraic computing. It is used to evaluate Mathematical Expressions with variables.


19. Puzzle - This XBlock divides an image into squares that comprise a puzzle which the user then can solve.


These initial XBlocks were developed to deliver the courses on the platform today, but the beauty of the platform architecture is the flexibility. Adding new XBlocks to help deliver new courses for academic, corporate or other uses will accelerate.

What are people working on?

  • AD (Active Directory) and 3rd Party integration with edX
  • Custom Analytics Module using GA to show how people are interacting with XBlocks

Building your own XBlock

If you are interested in learning more about how to build or modify XBlocks, you can do that too! The instructions to get started can be found here.

Keep Learning

10 Questions You Need to Answer Related to Digital Transformation Through Learning

Digital transformation is a long journey, one that we have helped several organizations navigate. The first steps are uncertain, the unknowns are many, but the potential payoff is large. Answers to these questions can help you determine whether or not you’re ready to take those first steps.


Let us teach you about learning.

We'll send you an occasional email with resources from our team of learning experts.

Subscribe to Updates