Hi everyone,
I’ve been trying to customize the footer in Open edX (Sumac release) using Tutor, and after several attempts, I still can’t make it work.
Here’s a summary of what I’ve tried:
What I’ve already done (and works with other MFEs):
For MFEs like frontend-app-learner-dashboard
, I did the following:
- Forked the MFE repo from Open edX GitHub.
- Cloned the fork into my local dev environment.
- Created a custom Tutor plugin to point to my fork instead of the default repo.
- Used
tutor mounts add
to bind-mount my local changes. - Ran
tutor config save
,tutor images build mfe
, andtutor local launch
.
With that, my changes showed up perfectly in the MFE.
What’s not working (with the footer):
I want to override or customize the footer. I tried several approaches:
1. frontend-component-footer
I cloned the repo, added a custom component, and used a custom env.config.jsx
. But it didn’t work.
2. frontend-slot-footer
(plugin-slot method)
I cloned the repo, explored the slot org.openedx.frontend.layout.footer.v1
, and created a custom Tutor plugin using PLUGIN_SLOTS.add_items([...])
, with both Hide and Insert operations.
Plugin structure:
tutor-indigo/
└── plugins/
└── footer-slot-fork/
├── footer_slot_fork/
│ └── plugin.py
├── patches/
│ └── mfe/
│ └── env.config.jsx
├── setup.py
└── pyproject.toml
I installed the plugin with pip install -e .
, enabled it with tutor plugins enable
, built images, and relaunched. Still, nothing changes in the footer.
What I need help with:
- How should I properly install or configure the frontend-plugin-framework or slot-based plugins?
- Where exactly should the
env.config.jsx
be placed? - What’s the proper structure when using
frontend-slot-footer
as a plugin in Tutor? - Is Indigo (the theme) interfering with this somehow?
I’ve read the documentation, but it only explains how to use the plugin slot config, not how to install or structureeverything in a Tutor-based setup.
If anyone has managed to successfully override the footer, or has a working example, I’d really appreciate the help.
Thanks in advance!