# Adding the header slot to discussions MFE?

**URL:** <https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337>\
**Category:** Frontend\
**Created:** [January 28, 2026, 3:51pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337 "2026-01-28T15:51:09Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![mboisson](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mboisson/32/7551_2.png) [@mboisson](https://discuss.openedx.org/u/mboisson)\
**Post date:** [January 28, 2026, 3:51pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/1 "2026-01-28T15:51:09Z")

</div>

It seems that the discussions MFE does not support the header plugin slot, which makes the discussions page much different from the other pages.

Is this something that can be added easily by forking the MFE ?

> **[frontend-app-discussions/src/plugin-slots at master ·...](https://github.com/openedx/frontend-app-discussions/tree/master/src/plugin-slots)**
>
> A React-based micro frontend for the Open edX discussion forums. - openedx/frontend-app-discussions

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [January 28, 2026, 7:29pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/2 "2026-01-28T19:29:28Z")

</div>

> [@mboisson](#):
>
> It seems that the discussions MFE does not support the header plugin slot

I was surprised to hear this, but it’s true. I opened [a bug](https://github.com/openedx/frontend-app-discussions/issues/857). Thanks for reporting it!

> [@mboisson](#):
>
> Is this something that can be added easily by forking the MFE ?

Whether it’s easy or not depends a little on skill, but in any case, I suggest copying [what the Learning MFE does](https://github.com/openedx/frontend-app-learning/blob/master/src/plugin-slots/HeaderSlot/index.jsx#L6-L29).

---

<div class="post-metadata">

**Author:** ![mboisson](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mboisson/32/7551_2.png) [@mboisson](https://discuss.openedx.org/u/mboisson)\
**Post date:** [January 28, 2026, 7:42pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/3 "2026-01-28T19:42:42Z")

</div>

Thanks. I am happy to test it once it’s there.

---

<div class="post-metadata">

**Author:** ![mboisson](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mboisson/32/7551_2.png) [@mboisson](https://discuss.openedx.org/u/mboisson)\
**Post date:** [August 6, 2026, 2:34pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/4 "2026-08-06T14:34:01Z")

</div>

I upgraded to Verawood, with tutor and tutor-forum 22.0.0, but I still don’t see the correct header in the discussions page of a course.

Is there anything more that is needed ?

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [August 7, 2026, 1:11pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/5 "2026-08-07T13:11:42Z")

</div>

> [@mboisson](#):
>
> I still don’t see the correct header in the discussions page of a course

The slot [is there](https://github.com/openedx/frontend-app-discussions/blob/release/verawood.1/src/discussions/discussions-home/DiscussionsHome.jsx#L88). Are you wiring it up according to its documentation?

> **[frontend-app-discussions/src/plugin-slots/HeaderSlot at release/verawood.1 ·...](https://github.com/openedx/frontend-app-discussions/tree/release/verawood.1/src/plugin-slots/HeaderSlot)**
>
> release/verawood.1/src/plugin-slots/HeaderSlot

---

<div class="post-metadata">

**Author:** ![mboisson](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mboisson/32/7551_2.png) [@mboisson](https://discuss.openedx.org/u/mboisson)\
**Post date:** [August 7, 2026, 1:38pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/6 "2026-08-07T13:38:44Z")

</div>

Unless there is something different between discussions and learner or other MFEs, I apply the header slot changes to all MFEs in here:

[https://github.com/calculquebec/tutor-plugins/blob/cq/verawood.dev/plugin\_slots.py](https://github.com/calculquebec/tutor-plugins/blob/cq/verawood.dev/plugin_slots.py)

I’ll try to debug

---

<div class="post-metadata">

**Author:** ![mboisson](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mboisson/32/7551_2.png) [@mboisson](https://discuss.openedx.org/u/mboisson)\
**Post date:** [August 7, 2026, 2:06pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/7 "2026-08-07T14:06:34Z")

</div>

Ok, by comparing the header slot in the learner vs discussions MFE, through the plugin slot browser:

[https://arunmozhi.in/openedx-plugin-slots-browser/mfes/frontend-app-discussions/slots/HeaderSlot/](https://arunmozhi.in/openedx-plugin-slots-browser/mfes/frontend-app-discussions/slots/HeaderSlot/)

vs

[https://arunmozhi.in/openedx-plugin-slots-browser/mfes/frontend-app-learning/slots/HeaderSlot/](https://arunmozhi.in/openedx-plugin-slots-browser/mfes/frontend-app-learning/slots/HeaderSlot/)

I believe the issue I had is that for the discussions app, the plugin slot

`org.openedx.frontend.layout.header_discussions.v1`

does not have an alias named `header_slot`

like the other MFEs.

That threw off the logic of my plugin slots, because I was using the alias. Whether this is intended or a bug, I don’t know. I find aliases useful because they reduce the amount of code needed to maintain, but I understand that they are less specific.

After adding another plugin slot specifically for

`org.openedx.frontend.layout.header_discussions.v1`

then the header is replaced by ours like in other pages.

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [August 7, 2026, 2:31pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/8 "2026-08-07T14:31:15Z")

</div>

> [@mboisson](#):
>
> for the discussions app, the plugin slot
> 
> `org.openedx.frontend.layout.header_discussions.v1`
> 
> does not have an alias named `header_slot`

@brian.smith, should it? I see Maxime’s point, but as I remember it, we only ever intended aliases to be used for backward-compatibility, which is not technically applicable, here.

---

<div class="post-metadata">

**Author:** ![brian.smith](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/brian.smith/32/4259_2.png) [@brian.smith](https://discuss.openedx.org/u/brian.smith)\
**Post date:** [August 7, 2026, 3:17pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/9 "2026-08-07T15:17:51Z")

</div>

> [@arbrandes](#):
>
> I see Maxime’s point, but as I remember it, we only ever intended aliases to be used for backward-compatibility, which is not technically applicable, here.

Aliases are intended for backwards compatibility, yes.

This is an interesting case.

`frontend-app-learning` used `header_slot` for [`org.openedx.frontend.layout.header_learning.v1`](https://github.com/openedx/frontend-app-learning/tree/master/src/plugin-slots/HeaderSlot) before we moved to reverse DNS naming.

`frontend-app-learner-dashboard`, `frontend-app-profile`, `frontend-app-account` etc. don’t have specific `header_slot`s and instead rely on the slots provided by `frontend-component-header`:

- [`org.openedx.frontend.layout.header_desktop.v1`](https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/DesktopHeaderSlot) (with `desktop_header_slot` alias)
- [`org.openedx.frontend.layout.header_mobile.v1`](https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/MobileHeaderSlot) (with `mobile_header_slot` alias)

It seems like the desired functionality would best be achieved by having a shared slot for the `LearningHeader` component _in_ `frontend-component-header`. Following the desktop/mobile pattern the naming would be `org.openedx.frontend.layout.header_learning.v*`, so we’d probably need to use `v2` to not overlap with the existing slot in `frontend-app-learning`.

We’d then want to “slot in a slot” it, keep the existing slots in `frontend-app-learning` and `frontend-app-discussions` so people can continue to target each individually, or choose to use `v2` to target both at once.

With that in place, adding `header_slot` as an alias for the new `org.openedx.frontend.layout.header_learning.v2` would be a bad idea, as it would be an alias shared between 2 slots in the same `frontend-app-learning` render tree.

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [August 7, 2026, 3:21pm UTC](https://discuss.openedx.org/t/adding-the-header-slot-to-discussions-mfe/18337/10 "2026-08-07T15:21:57Z")

</div>

> [@brian.smith](#):
>
> It seems like the desired functionality would best be achieved by having a shared slot for the `LearningHeader` component _in_ `frontend-component-header`

A path I would wholeheartedly agree with if we were not already solving the general use case with frontend-base and the unified shell header. In other words, I feel we should leave this alone and focus on getting all the learner-facing MFEs that would benefit from this converted to frontend-base by Willow… which we happen to be doing already. 😉
