diff --git a/packages/shared/src/components/MainFeedLayout.tsx b/packages/shared/src/components/MainFeedLayout.tsx
index feeafd84127..a6d014434b1 100644
--- a/packages/shared/src/components/MainFeedLayout.tsx
+++ b/packages/shared/src/components/MainFeedLayout.tsx
@@ -88,6 +88,8 @@ import { useReadingReminderHero } from '../hooks/notifications/useReadingReminde
import { useTrackQuestClientEvent } from '../hooks/useTrackQuestClientEvent';
import { useReadingReminderVariation } from '../hooks/notifications/useReadingReminderVariation';
import { useLayoutVariant } from '../hooks/layout/useLayoutVariant';
+import { ExploreSectionTabs } from './header/ExploreSectionTabs';
+import { ExploreSortDropdown } from './header/ExploreSortDropdown';
const FeedExploreHeader = dynamic(
() =>
@@ -263,6 +265,7 @@ export default function MainFeedLayout({
isPopular,
isAnyExplore,
isExploreLatest,
+ isDiscussed,
isSortableFeed,
isCustomFeed,
isSearch: isSearchPage,
@@ -726,7 +729,10 @@ export default function MainFeedLayout({
// page-header strip (matching the SquadDirectoryLayout pattern). The
// inline FeedExploreComponent is suppressed below to avoid showing
// the same tabs twice.
- const showExploreV2PageHeader = isAnyExplore && isV2;
+ // The Discussions feed (/discussed) is part of the Explore hub — show the
+ // same section tabs there so the hub persists. The Sort dropdown is only
+ // for the actual Explore sorts, so it stays gated on isAnyExplore.
+ const showExploreV2PageHeader = (isAnyExplore || isDiscussed) && isV2;
// v2 also hoists the regular page-header strip up here, OUTSIDE
// `FeedPageLayoutComponent`, so it can span the full floating-card
@@ -765,13 +771,8 @@ export default function MainFeedLayout({
<>
{showExploreV2PageHeader && (