OpenCraft has been interested in working on improvements to the discussions infrastructure in Open edX for quite some time now, and created a proposal for creating a Discourse plugin for Open edX and making Discussions a pluggable component back in 2019.

Since then, we got the opportunity to work on a major blended development project with edX (now 2U) on bringing some of those improvements to fruition.

There have been major changes to the way discussions work in the platform at multiple levels. From foundational changes that allow selecting alternative discussion providers, and a revamped mechanism for configuring discussions, to new discussions UI that continues the trend of moving over the platform interface to React-based MFEs.

We're happy we got to work on this pivotal functionality of the platform and hope to keep the momentum going in making improvements in this area.

Support for Alternative Discussion Providers

One of the key aspects of the work we've done as part of blended projects BD-3 and BD-38 has been to allow users to select alternative discussion providers.

Parts of this functionality have been landing in the platform since Koa, but from Lilac onwards it has been possible to use the new Course Authoring MFE to do so using a much simpler UI.

With the Course Authoring MFE, the discussion tool used for a course is now something that can be selected from a UI rather than just being an inbuilt default.  The Open edX platform will come with out-of-the-box support for Piazza, YellowDig, InScribe, and Ed Discussion. These providers support LTI (Learning Tools Interoperability) 1.1, which is a standard that allows learning tools to communicate and interoperate. In this case, we use it to allow seamless logging in the discussion tool without requiring the user to log in to another site.

With a simple wizard UI it's possible to select the inbuilt forums or a third-party discussion provider, and configure credentials for the tool. Once configured, the discussion tool will appear embedded in the Discussion tab, replacing the standard Open edX forum interface.

A new UI in the Course Authoring MFE allows you to select a Discussion tool

We developed a newly added LTI infrastructure that also makes it possible to have other LTI-based course tabs, which can embed any kind of tool. However, this aspect is currently not easy to access without importing a specially edited course structure outside of studio. We hope to be able to develop this further in a future blended project. 

While the new UI simplifies the use of supported providers, it is also possible to manually configure a different discussion provider that isn’t supported yet by editing the configuration in the admin panel. Instructions for how to do this are at the end of this article.

Adding a new provider to the UI isn’t possible without some development effort. It currently requires some small modifications to the platform and UI. This is another aspect that we’d love to expand on in the future by making it pluggable or customisable.

One provider we'd particularly love to add better support for is Discourse. Discourse is a very popular discussion forum software that is open source, well known, modern and actively developed. Currently, using it requires installing plugins on the Discourse side as well. It also supports a more modern version of LTI (v1.3) that is supported by the platform, which is something OpenCraft worked on as part of Blended Project BD-02 but isn’t supported for discussions just yet. 

A New UI to Configure Discussions

As you may have seen from the above screenshots, there is now a UI to switch between discussion providers. This isn't limited to just the LTI-based providers; there is now a new configuration UI for the internal forums as well.

The Course Authoring MFE also allows configuring a number of discussion settings from a single place

This new UI will allow you to configure some discussion options that were previously only available to edit through advanced course settings. It consolidates most discussions-related settings into one place. This includes the ability to enable anonymous posts, add general discussion topics, configure discussion cohorts division, and blackout dates.

This new interface lives in the Course Authoring MFE, which now also adds a UI to configure other aspects of a course, such as configuring teams, and enabling/disabling the progress tab, notes feature, calculator tool, and course wiki.

Applications and tools that previously required fiddling with advanced course settings and now be set up in a few clicks using the Course Authoring MFE

New Mechanism for Configuring Discussions

The UI is not the only thing that's new. The whole mechanism for configuring discussions has also been revamped.

When authoring course content, you no longer need to create a discussion block and manually set a category and subcategory. With the new mechanism, you simply tick a checkbox for a Unit, and it will automatically be associated with a topic with the same name as the unit, and the discussions UI will show up for that Unit. By default, all Units will automatically be discussable unless they are in graded, or exam subsections.

There is no need for manually setting up a Discussions XBlock anymore

For units in graded subsections, discussions can be enabled using  a new configuration toggle. 

A migration path from the existing XBlock-based mechanism to the new mechanism is still in development. There are certain complex discussion setups, however, that are no longer supported with this new mechanism. 

A couple of scenarios that are no longer supported are:

New Discussions MFE

There is a brand-new Discussions MFE that is intended to replace the existing forum UI hosted by edx-platform. This new UI refresh modernizes the forum UI, making it easier to explore and navigate between topics. While it is still not officially released, it is possible to test and preview it in the latest Nutmeg release. 

This new UI is entirely API-driven, allowing quick browsing, sorting and filtering through topics, and posts. The MFE can be deployed to a subfolder or subdomain and independently accessed for any course that utilizes discussions. User avatars are now visible next to all user content, making conversations easier to follow.

A new UI has been added to manage learners in a course

There is an entirely new learners section that allows you to see learners in the course, and see their activity on the course. Moderators have the ability to sort learners based on most content reported/flagged for abuse, to make it easy to quickly spot users with most reported activity.

In-Context discussions can now be viewed in a sidebar next to units. The sidebar can be shown or hidden using an icon near the top right that can show different sidebars.

The in-context experience for discussions has also been updated. Rather than appearing in an XBlock in the course flow, discussions can now be viewed within a sidebar next to the course content.

 

New Discussions Features

The Open edX discussion forum functionality is the only backend feature that is written in Ruby as opposed to Python. While this remains the case, the Ruby forum component (cs_comments_service) has seen a lot of changes recently, with major new features.

The forum now tracks user activity, making it easier to track the level of contribution from different users. The learner section, for instance, will show users that have the highest levels of engagement first.

Edit reasons allow a moderator to clarify the reason for editing a post or comment
Post close reasons allow moderators to clarify the reason for closing a post

For moderation, there is now the ability to provide a reason when performing moderation actions, such as editing content or closing a post. When editing content or closing a post, moderators will see a UI to select a reason for performing that action. For instance, a moderator can select that a post is being closed since it's off-topic, or is a duplicate. Reasons for editing posts or comments, include corrections for grammar and spelling, or removing Personally Identifiable Information (PII), quiz/exam answers, etc. These reasons can be customized by Open edX admins during deployment through Django settings.

How to try out these new Features

If these recent changes seem exciting, you can check out the new discussions configuration experience using the Course Authoring MFE and see the new Discussions UI in action using the Discussions MFE. These MFEs can be set up like any other MFE. 

Using the Course Authoring MFE

If you’ve set up the new Course Authoring MFE, you can simply access it by visiting the following URL for any course: 

[MFE_URL]/course/[course_id]/pages-and-resources/

For instance, on the devstack, for the demo course you’d visit: 

http://localhost:2001/course/course-v1:edX+DemoX+Demo_Course/pages-and-resources/

To have better integration of this MFE with Studio, you need to add the waffle flag below to a course or globally. This will add a link to “Pages and Resources” under the “Content” menu in Studio: 

discussions.pages_and_resources_mfe

Previewing the new Discussions MFE

Once you’ve set up the Discussions MFE, you can visit the following URL for any course that uses discussions:

    [MFE_URL]/[course_id]/

For instance, on the devstack, for the demo course, you’d visit:

http://localhost:2002/course-v1:OC+NP+Test/

The following waffle flags are available to tweak this new experience:

discussions.enable_discussions_mfe
discussions.enable_learners_tab_in_discussions_mfe
discussions.enable_moderation_reason_codes
discussions.enable_view_mfe_in_iframe

Preview the new Discussion Configuration Experience

Previewing the new Discussions configuration experience is currently a little more complex, since the migration process for that is still being worked on. This area of the platform is in active development, and as such the process is bound to change. While this feature can be tested in Nutmeg, we’d recommend testing it in a sandbox or development environment running the latest Open edX code. 

However, you can test it out by with the following steps:

discussions.enable_new_structure_discussions
/course/<course-id>/pages-and-resources/discussion/configure/openedx

If you only saw one provider called “edX” it’s probably because your version doesn’t include the most recent changes. In that case, you may need to manually add a discussion configuration for your course. 

[LMS]/admin/discussions/discussionsconfiguration/

You will now be able to enable/disable discussion for individual units in your course without needing to add an XBlock.

This new experience is still actively being worked on and simplified, so expect this process to get a lot smoother over time, and the configuration to get further streamlined.

Use an Unsupported LTI Discussion Tool

While Piazza, YellowDig, InScribe, and Ed Discussion are available to set up using a simple UI Wizard. The process for configuring an unsupported provider isn’t very complex either. It just needs access to the admin panel. 

Since Lilac, the Open edX platform has had the ability to create a discussion configuration via thevia that the admin panel that will allow using an LTI tool instead of the internal forums. For this you need to visit the discussion configuration page in the LMS’s admin page at

[LMS]/admin/discussions/discussionsconfiguration/

Once there, here is what you can do to set up your custom discussion provider:

The Discussion tab on this course should now embed the LTI tool. 

Note that if your provider needs access to a user’s username or email to work, you will need to explicitly enable sharing such PII with the provider using the following additional steps:

[LMS]/admin/lti_consumer/courseallowpiisharinginltiflag/
{
    "pii_share_username": true,
    "pii_share_email": true
}

Photo by Volodymyr Hryshchenko on Unsplash

This article was written by Giovanni Cimolin (OpenCraft) and Ned Batchelder (edX).

Learning Tools Interoperability® (LTI®) is a standard used to integrate different learning platforms and tools and allows a richer learning experience through the use of graded problems, interactive content, and third-party applications.

LTI support in the Open edX platform opens a wide range of possibilities for learning content.  Because of LTI’s broad adoption across ed-tech platforms, there are hundreds, if not thousands, of tools available that can be integrated into Open edX courses. LTI tools are available from a wide range of organizations, from large ed-tech vendors to universities building their own integrations.

In Open edX software, LTI is used in two ways: as an LTI consumer in courses to enrich the learner experience by embedding interactive problems and exercises from external sources, and as an LTI provider to allow other LMS’s to embed Open edX course content.

In 2018, IMS introduced the new version of the LTI specification (LTI 1.3) focusing on modernizing the LTI standard, improving security, and enabling a flexible and extensible specification. The Open edX platform has long supported the 1.1 version of the LTI specification. Adding support for the 1.3 specification version brings the Open edX platform up to date with the most capable LTI standard.

You can read more about the advantages and improvements of the new standard in Why Platforms and Tools Should Adopt LTI 1.3.

Early in 2020, edX decided to implement LTI 1.3 in the LTI consumer support through a blended development project with OpenCraft, and then followed up with another project to implement the LTI Advantage extensions (detailed in the next section).

Blended development projects are funded by edX to implement roadmap features and promote collaboration between edX teams and partners in the community while increasing edX’s development throughout. You can find more information about these projects in the Blended Development Runbook.

What is LTI Advantage?

LTI Advantage is a set of extensions to the LTI 1.3 specification that enhance its capabilities and allows deeper integration between LMS and LTI tools. Its two main goals are (1) to enable deeper integration between tools and platforms, avoiding the need for custom integrations, and (2) to provide a secure channel to transmit student and enrollment information. 

LTI Advantage includes three services, detailed below.

Assignments and Grades Service

The Assignments and Grades service (LTI-AGS) allows LTI tools to send and manage learner grades back to the platform. 

When LTI-AGS is enabled and the component is set as graded in an Open edX course, grades sent from the tool will be automatically linked to the student gradebook. The LTI tool may also manage, edit, and override student’s grades directly, and provide reports on the user status of the activity (pending, started, fully graded).  

You can enable this feature on your instance following the Assignments and Grades service setup documentation. Make sure you set up an LTI 1.3 integration in your Open edX instance first. For more information, you can follow the official LTI component documentation.

Deep Linking

The Deep Linking service (LTI-DL) allows course creators to select and configure the content displayed to learners through Open edX Studio. This removes the need to use custom parameters and settings when setting up content, improving the ease of use and content authoring experience.

For example, a tool may let course creators configure a link that will launch a specific chapter from a book rather than displaying the full book and having students manually scroll to that chapter. 

You can enable this feature on your instance – just follow the deep linking service setup documentation.

Names and Roles Provisioning Service (LTI-NRPS)

The Names and Roles Provisioning service (LTI-NRPS) allows tools to list and retrieve information about the learners that have access to an LTI component. The tools can retrieve a limited amount of personal information (full name, email, username) and the membership status of all the learners enrolled in the course.

A tool that uses LTI-NRPS will be aware of all users with access to that tool and can provide reports on student activity within the tool. For example, a tool might display a report of enrolled active users that haven’t started an activity.

Final Thoughts

With the implementation of the LTI Advantage services, the Open edX platform has been formally certified as LTI Advantage Complete (more details on Open edX platform earns LTI® Advantage Certification).

LTI 1.3 and LTI Advantage features are available in the Lilac release of the Open edX platform.

LTI® is a trademark of IMS Global Learning Consortium, Inc. (www.imsglobal.org)

Cover photo by Tamanna Rumee on Unsplash

Get in touch

We'd love to hear from you! Send us a message and a member of our team will get back to you.
Contact us
Subscribe to our newsletter
© OpenCraft 2026
edX and Open edX® are trademarks of edX Inc
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram