This is the server-side (and legacy frontend) way of doing i18n and localizations in the Open edX Platform. It uses the Django translation libraries and .po files checked into the backend service’s repository.
The Hooks Extension Framework allows new apps within edx-platform to ‘hook into’ existing data flows elsewhere in the platform without directly referencing the source of the data by subscribing to existing “events” and adding “filters” to existing processes. This allows new apps to stay decoupled from existing systems without the need for developers to fork the code.
XBlocks are a fundamental part of the structure of an Open edX course. Many are built into the platform, but creating new XBlocks allows course authors to express learning materials in unique and innovative ways.
Micro-frontends allow developers to override their headers and footers by creating an “alias” at build time in the micro-frontend’s package.json file. Replacement headers/footers are React components and must satisfy the default component’s expected set of properties.
(Documentation for this forthcoming, it was lost in the ReadTheDocs → docs.openedx.org transition.)
Django App Plugins
Django app plugins allow extension by automatically adding PIP-installed django apps to the application’s INSTALLED_APPS list. It also allows the app’s settings, URLs, and signals to be recognized by the Django project.
Making a git “fork” of one of the Open edX Platform’s repositories to arbitrarily change code in it. The customization of last resort. Note, making forks to do work you intend to merge upstream is a perfectly valid workflow; this isn’t talking about that, but rather, using forking to make modifications you have no intention of being able to merge upstream.