How to properly override the footer using frontend-plugin-framework or frontend-slot-footer in Tutor?

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:

  1. Forked the MFE repo from Open edX GitHub.
  2. Cloned the fork into my local dev environment.
  3. Created a custom Tutor plugin to point to my fork instead of the default repo.
  4. Used tutor mounts add to bind-mount my local changes.
  5. Ran tutor config save, tutor images build mfe, and tutor 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:

  1. How should I properly install or configure the frontend-plugin-framework or slot-based plugins?
  2. Where exactly should the env.config.jsx be placed?
  3. What’s the proper structure when using frontend-slot-footer as a plugin in Tutor?
  4. 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!

I think this is being discussed in Cannot get my forked frontend‑component‑footer to show in Tutor dev – changes invisible & no build‑mounts