# Development

**URL:** https://discuss.openedx.org/c/development/11.md

[Latest](https://discuss.openedx.org/latest.md) · [Categories](https://discuss.openedx.org/categories.md) · [Tags](https://discuss.openedx.org/tags.md)

---

## [About the Development category](https://discuss.openedx.org/t/about-the-development-category/71)

<div class="topic-metadata">

**Author:** [@nedbat](https://discuss.openedx.org/u/nedbat)\
**Replies:** 1\
**Last updated:** [July 23, 2019, 5:27pm UTC](https://discuss.openedx.org/t/about-the-development-category/71 "2019-07-23T17:27:12Z")

</div>

Software development in the Open edX world, either as core developers or app and plugin developers. Sub-categories include extending (all about building on top of the Open edX platform), architecture (how should the Ope…

---

## [Native QTI Support](https://discuss.openedx.org/t/native-qti-support/19765)

<div class="topic-metadata">

**Author:** [@dave](https://discuss.openedx.org/u/dave)\
**Replies:** 0\
**Last updated:** [September 28, 2026, 4:21am UTC](https://discuss.openedx.org/t/native-qti-support/19765 "2026-09-28T04:21:22Z")

</div>

Summary I built a proof-of-concept XBlock that lets you use QTI directly in Open edX Platform. I believe that this is a valuable feature, and that the basic architecture I’ve laid out for this is workable. However, I do …

---

## [RFC: Platform-level UTM attribution support for authenticated MFE users](https://discuss.openedx.org/t/rfc-platform-level-utm-attribution-support-for-authenticated-mfe-users/19182)

<div class="topic-metadata">

**Author:** [@Varun](https://discuss.openedx.org/u/Varun)\
**Replies:** 3\
**Last updated:** [September 21, 2026, 6:10pm UTC](https://discuss.openedx.org/t/rfc-platform-level-utm-attribution-support-for-authenticated-mfe-users/19182 "2026-09-21T18:10:30Z")

</div>

Hello community, I’d like to start a discussion around a gap I’ve encountered with UTM attribution for authenticated users in MFEs. Background Open edX currently captures UTM parameters for many unauthenticated user f…

---

## [Notes plugin brokes page layout for certain users](https://discuss.openedx.org/t/notes-plugin-brokes-page-layout-for-certain-users/19682)

<div class="topic-metadata">

**Author:** [@Yago](https://discuss.openedx.org/u/Yago)\
**Replies:** 0\
**Last updated:** [September 18, 2026, 9:12am UTC](https://discuss.openedx.org/t/notes-plugin-brokes-page-layout-for-certain-users/19682 "2026-09-18T09:12:10Z")

</div>

Hello! We are experiencing the following error for one of our staff users, when launching any unit of any course: If View this course as: is “Staff” or “Specific student”, notes plugin works ok If View this course as…

---

## [Replacing MinIO in tutor-minio: Why We Chose Garage (and What Comes Next)](https://discuss.openedx.org/t/replacing-minio-in-tutor-minio-why-we-chose-garage-and-what-comes-next/18868)

<div class="topic-metadata">

**Author:** [@Syed\_Ali\_Abbas](https://discuss.openedx.org/u/Syed_Ali_Abbas)\
**Replies:** 3\
**Last updated:** [September 17, 2026, 10:04am UTC](https://discuss.openedx.org/t/replacing-minio-in-tutor-minio-why-we-chose-garage-and-what-comes-next/18868 "2026-09-17T10:04:10Z")

</div>

Replacing MinIO in tutor-minio: Why We Chose Garage (and What Comes Next)Context MinIO has been the S3-compatible storage backend for the tutor-minio plugin since the plugin was created. The situation upstream has change…

---

## [Conditional/skippable units without affecting course progress](https://discuss.openedx.org/t/conditional-skippable-units-without-affecting-course-progress/19651)

<div class="topic-metadata">

**Author:** [@Syed\_Sajjad\_Hussain](https://discuss.openedx.org/u/Syed_Sajjad_Hussain)\
**Replies:** 0\
**Last updated:** [September 14, 2026, 1:37pm UTC](https://discuss.openedx.org/t/conditional-skippable-units-without-affecting-course-progress/19651 "2026-09-14T13:37:11Z")

</div>

Hi everyone, We need to build a course flow with two separate graded steps: a first assessment and a second, different assessment that acts as a retry path. The second assessment should only be reachable if a learner at…

---

## [OEP 70: Shared Design Collateral Contribution Requirements](https://discuss.openedx.org/t/oep-70-shared-design-collateral-contribution-requirements/19594)

<div class="topic-metadata">

**Author:** [@sdaitzman](https://discuss.openedx.org/u/sdaitzman)\
**Replies:** 0\
**Last updated:** [September 9, 2026, 2:59pm UTC](https://discuss.openedx.org/t/oep-70-shared-design-collateral-contribution-requirements/19594 "2026-09-09T14:59:47Z")

</div>

Hi everyone! I’m seeking feedback and input on a new OEP covering open design contribution requirements for contributions to the Open edX platform. I’d especially love to hear from frontend engineers, product/UX designer…

---

## [How can Open edX be integrated with a Student Information Management System (SIMS/SIS)](https://discuss.openedx.org/t/how-can-open-edx-be-integrated-with-a-student-information-management-system-sims-sis/19546)

<div class="topic-metadata">

**Author:** [@Jemberu\_Kassie](https://discuss.openedx.org/u/Jemberu_Kassie)\
**Replies:** 0\
**Last updated:** [September 6, 2026, 3:58am UTC](https://discuss.openedx.org/t/how-can-open-edx-be-integrated-with-a-student-information-management-system-sims-sis/19546 "2026-09-06T03:58:52Z")

</div>

Hi everyone, I’m currently working on an Open edX deployment and I’m looking for guidance on integrating Open edX with a Student Information Management System (SIMS). Has anyone successfully integrated Open edX with an…

---

## [Debugging with Visual Studio Code Dev Containers Extension](https://discuss.openedx.org/t/debugging-with-visual-studio-code-dev-containers-extension/17013)

<div class="topic-metadata">

**Author:** [@tpayne](https://discuss.openedx.org/u/tpayne)\
**Replies:** 5\
**Last updated:** [September 3, 2026, 8:00pm UTC](https://discuss.openedx.org/t/debugging-with-visual-studio-code-dev-containers-extension/17013 "2026-09-03T20:00:37Z")

</div>

With the Dev Containers extension for Visual Studio Code (VS Code), you can have access to VS Code features within a container, which includes debugging tools. Here is an overview to help you get started debugging code i…

---

## [LTI XBlock and SameSite](https://discuss.openedx.org/t/lti-xblock-and-samesite/759)

<div class="topic-metadata">

**Author:** [@DanielMcQ](https://discuss.openedx.org/u/DanielMcQ)\
**Replies:** 19\
**Last updated:** [August 31, 2026, 7:47am UTC](https://discuss.openedx.org/t/lti-xblock-and-samesite/759 "2026-08-31T07:47:44Z")

</div>

Question for anyone using Django to serve LTI apps for edx.org courses, and thereby using the LTI xblock : have you seen the notice in Chrome about cookies and the SameSite header? If you have the Chrome dev console op…

---

## [\[RFC\] Pluginifying edx-enterprise — looking for community interest & collaborators](https://discuss.openedx.org/t/rfc-pluginifying-edx-enterprise-looking-for-community-interest-collaborators/18316)

<div class="topic-metadata">

**Author:** [@tsankey](https://discuss.openedx.org/u/tsankey)\
**Replies:** 14\
**Last updated:** [August 26, 2026, 11:26pm UTC](https://discuss.openedx.org/t/rfc-pluginifying-edx-enterprise-looking-for-community-interest-collaborators/18316 "2026-08-26T23:26:42Z")

</div>

TL;DR I’m proposing to convert openedx/edx-enterprise into a plugin using the existing Open edX plugin framework, so that: edx-platform no longer directly imports or requires the enterprise module. Enterprise behavio…

---

## [All MFE pages hardcode the page language (\<html lang="en-us")](https://discuss.openedx.org/t/all-mfe-pages-hardcode-the-page-language-html-lang-en-us/17989)

<div class="topic-metadata">

**Author:** [@Anh\_Vu\_Nguy\_n](https://discuss.openedx.org/u/Anh_Vu_Nguy_n)\
**Replies:** 4\
**Last updated:** [August 7, 2026, 1:50pm UTC](https://discuss.openedx.org/t/all-mfe-pages-hardcode-the-page-language-html-lang-en-us/17989 "2026-08-07T13:50:11Z")

</div>

and this affects tasks that depend on the browser language, such as automatic translation. How can this be fixed? Problem: When you change the website language (e.g., through the account page), the lang attribute in th…

---

## [When a professor remove last block completed by a student leaves you to a 404](https://discuss.openedx.org/t/when-a-professor-remove-last-block-completed-by-a-student-leaves-you-to-a-404/19204)

<div class="topic-metadata">

**Author:** [@Catalina\_Millaray\_Il](https://discuss.openedx.org/u/Catalina_Millaray_Il)\
**Replies:** 1\
**Last updated:** [August 6, 2026, 2:33pm UTC](https://discuss.openedx.org/t/when-a-professor-remove-last-block-completed-by-a-student-leaves-you-to-a-404/19204 "2026-08-06T14:33:59Z")

</div>

Hi! i would like to report that when an professor remove a block in a running course and some student have already completed the same block. Then student try to use “Continue with course” button, leaves you to a 404 erro…

---

## [What is the correct way to set up translations for a third-party XBlock](https://discuss.openedx.org/t/what-is-the-correct-way-to-set-up-translations-for-a-third-party-xblock/19140)

<div class="topic-metadata">

**Author:** [@mrtmm](https://discuss.openedx.org/u/mrtmm)\
**Replies:** 8\
**Last updated:** [July 31, 2026, 8:06am UTC](https://discuss.openedx.org/t/what-is-the-correct-way-to-set-up-translations-for-a-third-party-xblock/19140 "2026-07-31T08:06:29Z")

</div>

Hi everyone! I’m trying to understand the current, correct approach for adding translations to a third-party XBlock (one not included in the openedx-translations repo). Initially, we added translations to our XBlock fo…

---

## [Design tradeoffs for Codejail upgrade darklaunch](https://discuss.openedx.org/t/design-tradeoffs-for-codejail-upgrade-darklaunch/19178)

<div class="topic-metadata">

**Author:** [@Tim\_McCormack](https://discuss.openedx.org/u/Tim_McCormack)\
**Replies:** 10\
**Last updated:** [July 30, 2026, 4:34pm UTC](https://discuss.openedx.org/t/design-tradeoffs-for-codejail-upgrade-darklaunch/19178 "2026-07-30T16:34:23Z")

</div>

At 2U, I’m preparing for us to upgrade our Codejail sandbox environment from Python 3.8 to something more recent (let’s say 3.14). We want to test existing XBlocks against the new environment, so my overall plan is to re…

---

## [Should we build a Paragon native text editor?](https://discuss.openedx.org/t/should-we-build-a-paragon-native-text-editor/19168)

<div class="topic-metadata">

**Author:** [@arunmozhi](https://discuss.openedx.org/u/arunmozhi)\
**Replies:** 5\
**Last updated:** [July 22, 2026, 11:45pm UTC](https://discuss.openedx.org/t/should-we-build-a-paragon-native-text-editor/19168 "2026-07-22T23:45:28Z")

</div>

Hi! When working on the exemplar-blocks \[1\], I noticed that the bundle size of an XBlock’s UI jumped 4x after adding TinyMCE for an input field. Before vite v8.0.2 building client environment for production... ✓ 3292 m…

---

## [How to override the account activation email template?](https://discuss.openedx.org/t/how-to-override-the-account-activation-email-template/19159)

<div class="topic-metadata">

**Author:** [@DaniilSitnikov](https://discuss.openedx.org/u/DaniilSitnikov)\
**Replies:** 1\
**Last updated:** [July 20, 2026, 2:52pm UTC](https://discuss.openedx.org/t/how-to-override-the-account-activation-email-template/19159 "2026-07-20T14:52:44Z")

</div>

Hi, I’m trying to override the account activation email template in a Tutor-based Open edX setup. I added my custom template here: impower-indigo/tutorindigo/templates/indigo/lms/templates/student/edx\_ace/accountactivat…

---

## [How to change activation email template? - Tutor](https://discuss.openedx.org/t/how-to-change-activation-email-template-tutor/10100)

<div class="topic-metadata">

**Author:** [@suresh\_kbizsoft](https://discuss.openedx.org/u/suresh_kbizsoft)\
**Replies:** 1\
**Last updated:** [July 14, 2026, 8:42am UTC](https://discuss.openedx.org/t/how-to-change-activation-email-template-tutor/10100 "2026-07-14T08:42:01Z")

</div>

I added the base\_body\_html in theme\_name/lms/templates/ae\_common/edx\_ace/common in the directory but the activation email template did not change. This is working only on a modified forgot password email template. Pleas…

---

## [Load testing & monitoring uWSGI workers after scaling (32GB RAM / 64 Cores)?](https://discuss.openedx.org/t/load-testing-monitoring-uwsgi-workers-after-scaling-32gb-ram-64-cores/19137)

<div class="topic-metadata">

**Author:** [@choltha](https://discuss.openedx.org/u/choltha)\
**Replies:** 2\
**Last updated:** [July 13, 2026, 7:45am UTC](https://discuss.openedx.org/t/load-testing-monitoring-uwsgi-workers-after-scaling-32gb-ram-64-cores/19137 "2026-07-13T07:45:56Z")

</div>

Hi all, I am running Tutor on a server with 64 CPU cores and 32GB RAM, and I’m increasing OPENEDX\_LMS\_UWSGI\_WORKERS from 2 to 24. What is the best way to benchmark max concurrency and response times before/after? H…

---

## [Shouldn't Superuser automatically inherit Staff access in Open edX?](https://discuss.openedx.org/t/shouldnt-superuser-automatically-inherit-staff-access-in-open-edx/18657)

<div class="topic-metadata">

**Author:** [@Abdul\_Muqadim](https://discuss.openedx.org/u/Abdul_Muqadim)\
**Replies:** 2\
**Last updated:** [July 6, 2026, 2:59pm UTC](https://discuss.openedx.org/t/shouldnt-superuser-automatically-inherit-staff-access-in-open-edx/18657 "2026-07-06T14:59:11Z")

</div>

Hi community :waving\_hand: I’ve been working with Open edX permissions and noticed a surprising behavior: a user with Superuser status does not automatically get all Staff-level access in the LMS or Studio. This seems c…

---

## [Discovery New Courses is not showing courses](https://discuss.openedx.org/t/discovery-new-courses-is-not-showing-courses/18054)

<div class="topic-metadata">

**Author:** [@brunodev](https://discuss.openedx.org/u/brunodev)\
**Replies:** 3\
**Last updated:** [July 2, 2026, 9:25pm UTC](https://discuss.openedx.org/t/discovery-new-courses-is-not-showing-courses/18054 "2026-07-02T21:25:42Z")

</div>

I have recently upgraded my tutor version 18.1.3 to tutor 20.0.3. Then I ran the command python manage.py cms reindex\_studio --experimental Counting libraries… Counting courses… Found 78 courses, 0 libraries. Checki…

---

## [Plugin-provided XBlock runtime services](https://discuss.openedx.org/t/plugin-provided-xblock-runtime-services/18682)

<div class="topic-metadata">

**Author:** [@Felipe](https://discuss.openedx.org/u/Felipe)\
**Replies:** 9\
**Last updated:** [July 1, 2026, 6:07pm UTC](https://discuss.openedx.org/t/plugin-provided-xblock-runtime-services/18682 "2026-07-01T18:07:55Z")

</div>

Hi all, We’ve been working on openedx-ai-extensions, a standalone plugin that exposes LLM capabilities to the platform. As part of that work, we investigated whether a plugin can register a new XBlock runtime service — …

---

## [OpenEdx Maple too slow?](https://discuss.openedx.org/t/openedx-maple-too-slow/19111)

<div class="topic-metadata">

**Author:** [@suigh](https://discuss.openedx.org/u/suigh)\
**Replies:** 3\
**Last updated:** [June 29, 2026, 5:33am UTC](https://discuss.openedx.org/t/openedx-maple-too-slow/19111 "2026-06-29T05:33:58Z")

</div>

Hello, I’m having a performance issue with my OpenDX Maple. I’m using Tutor v13 and OpenDX Maple on an AWS T3.2xLarge instance, but the site is still very slow. I have about 8 courses registered, 200,000 registered us…

---

## [Feature Enhancement: Restore the left-sidebar navigation in the learner experience](https://discuss.openedx.org/t/feature-enhancement-restore-the-left-sidebar-navigation-in-the-learner-experience/19108)

<div class="topic-metadata">

**Author:** [@cabralpedrofccn](https://discuss.openedx.org/u/cabralpedrofccn)\
**Replies:** 5\
**Last updated:** [June 17, 2026, 9:25am UTC](https://discuss.openedx.org/t/feature-enhancement-restore-the-left-sidebar-navigation-in-the-learner-experience/19108 "2026-06-17T09:25:59Z")

</div>

Hi everyone, In one of the recent conferences, I was quite pleased to see the proposal to bring back the left-sidebar navigation in Open edX (for context, see the feature proposal). We activated it in our latest platfo…

---

## [Recommended method for uploading files for xblocks](https://discuss.openedx.org/t/recommended-method-for-uploading-files-for-xblocks/17642)

<div class="topic-metadata">

**Author:** [@samuelallan](https://discuss.openedx.org/u/samuelallan)\
**Replies:** 4\
**Last updated:** [June 16, 2026, 7:12pm UTC](https://discuss.openedx.org/t/recommended-method-for-uploading-files-for-xblocks/17642 "2026-06-16T19:12:35Z")

</div>

For an XBlock that needs to manage files (eg. an audio transcript vtt, a pdf file, some photo images), is there a recommended method? I’ve seen a few methods: saving to contentstore - eg. appsembler/xblock-video savin…

---

## [Proposal: Combined Headless LMS+CMS](https://discuss.openedx.org/t/proposal-combined-headless-lms-cms/18880)

<div class="topic-metadata">

**Author:** [@braden](https://discuss.openedx.org/u/braden)\
**Replies:** 3\
**Last updated:** [June 15, 2026, 10:03pm UTC](https://discuss.openedx.org/t/proposal-combined-headless-lms-cms/18880 "2026-06-15T22:03:37Z")

</div>

Currently, openedx-platform is split into two parts, CMS and LMS, which get deployed and managed separately. However, they share a codebase (openedx-platform), and there is a very fuzzy boundary between them in some plac…

---

## [Course from Nutmeg release does not import correctly](https://discuss.openedx.org/t/course-from-nutmeg-release-does-not-import-correctly/19070)

<div class="topic-metadata">

**Author:** [@tech\_mil](https://discuss.openedx.org/u/tech_mil)\
**Replies:** 1\
**Last updated:** [June 15, 2026, 3:11pm UTC](https://discuss.openedx.org/t/course-from-nutmeg-release-does-not-import-correctly/19070 "2026-06-15T15:11:33Z")

</div>

Summary Importing an older course from another platform that is on Nutmeg release causes the import to hang. This seems to happen due to the way policy.json is created. I compared the policy.json of two courses. One on …

---

## [Add catalog-scoped course metadata endpoint backed by enterprise-catalog](https://discuss.openedx.org/t/add-catalog-scoped-course-metadata-endpoint-backed-by-enterprise-catalog/19066)

<div class="topic-metadata">

**Author:** [@JuanBuitrago](https://discuss.openedx.org/u/JuanBuitrago)\
**Replies:** 0\
**Last updated:** [May 19, 2026, 11:30am UTC](https://discuss.openedx.org/t/add-catalog-scoped-course-metadata-endpoint-backed-by-enterprise-catalog/19066 "2026-05-19T11:30:15Z")

</div>

I would like to discuss whether \`course-discovery\` should expose a catalog-scoped course metadata endpoint backed by \`enterprise-catalog\`. The proposed endpoint would allow API consumers to request Discovery course meta…

---

## [Frontend extensibility discussion: documenting best practices](https://discuss.openedx.org/t/frontend-extensibility-discussion-documenting-best-practices/19055)

<div class="topic-metadata">

**Author:** [@brian.smith](https://discuss.openedx.org/u/brian.smith)\
**Replies:** 6\
**Last updated:** [May 19, 2026, 7:53am UTC](https://discuss.openedx.org/t/frontend-extensibility-discussion-documenting-best-practices/19055 "2026-05-19T07:53:54Z")

</div>

Over the past few releases, we’ve added quite a lot of extension points to Open edX frontend applications, allowing operators to customize the platform without forking. These have come in the form of new frontend-plugin…

---

## [Ruff to replace pylint, pycodestyle in openedx-platform](https://discuss.openedx.org/t/ruff-to-replace-pylint-pycodestyle-in-openedx-platform/18741)

<div class="topic-metadata">

**Author:** [@kmccormick](https://discuss.openedx.org/u/kmccormick)\
**Replies:** 4\
**Last updated:** [April 28, 2026, 5:53pm UTC](https://discuss.openedx.org/t/ruff-to-replace-pylint-pycodestyle-in-openedx-platform/18741 "2026-04-28T17:53:30Z")

</div>

Hey devs :waving\_hand: This is a heads up that we are gradually rolling out ruff checks on the openedx-platform master branch. Already, pycodestyle has been disabled. ruff check now does all the basic style checks. Als…

[Next page](https://discuss.openedx.org/c/development/11.md?page=1)
