diff --git a/packages/client/src/components/MkTimeline.vue b/packages/client/src/components/MkTimeline.vue
index 47d2edd8cc..62071a4770 100644
--- a/packages/client/src/components/MkTimeline.vue
+++ b/packages/client/src/components/MkTimeline.vue
@@ -1,14 +1,14 @@
 <template>
-<XNotes ref="tlComponent" :no-gap="!$store.state.showGapBetweenNotesInTimeline" :pagination="pagination" @queue="emit('queue', $event)"/>
+<XNotes ref="tlComponent" :no-gap="!defaultStore.state.showGapBetweenNotesInTimeline" :pagination="pagination" @queue="emit('queue', $event)"/>
 </template>
 
 <script lang="ts" setup>
-import { ref, computed, provide, onUnmounted } from 'vue';
+import { computed, provide, onUnmounted } from 'vue';
 import XNotes from '@/components/MkNotes.vue';
-import * as os from '@/os';
 import { stream } from '@/stream';
 import * as sound from '@/scripts/sound';
 import { $i } from '@/account';
+import { defaultStore } from '@/store';
 
 const props = defineProps<{
 	src: string;
@@ -89,6 +89,13 @@ if (props.src === 'antenna') {
 	endpoint = 'notes/global-timeline';
 	connection = stream.useChannel('globalTimeline');
 	connection.on('note', prepend);
+} else if (props.src === 'featured') {
+	endpoint = 'notes/featured';
+	query = {
+		origin: 'combined',
+	}
+	connection = stream.useChannel('main');
+	connection.on('note', prepend);
 } else if (props.src === 'mentions') {
 	endpoint = 'notes/mentions';
 	connection = stream.useChannel('main');
diff --git a/packages/client/src/pages/explore.vue b/packages/client/src/pages/explore.vue
index 1cf4d10cd9..512f0beab3 100644
--- a/packages/client/src/pages/explore.vue
+++ b/packages/client/src/pages/explore.vue
@@ -41,7 +41,7 @@ const props = defineProps<{
 	tag?: string;
 }>();
 
-const tabs = ['featured', 'users'];
+const tabs = ['users', 'featured'];
 let tab = $ref(tabs[0]);
 watch($$(tab), () => (syncSlide(tabs.indexOf(tab))));
 
diff --git a/packages/client/src/pages/timeline.discover.vue b/packages/client/src/pages/timeline.discover.vue
index 0462bfc10e..b5fbd6fd33 100644
--- a/packages/client/src/pages/timeline.discover.vue
+++ b/packages/client/src/pages/timeline.discover.vue
@@ -5,7 +5,13 @@
 			<option v-if="isRecommendedTimelineAvailable" value="recommended">{{ i18n.ts._timelines.recommended }}</option>
 			<option v-if="isGlobalTimelineAvailable" value="global">{{ i18n.ts._timelines.global }}</option>
 		</MkTab>
-		<XNotes v-if="tab === 'hot'" :pagination="hotPagination"/>
+		<XTimeline
+			v-if="tab === 'hot'"
+			ref="tl"
+			class="tl"
+			src="hot"
+			:sound="true"
+		/>
 		<XTimeline
 			v-else-if="tab === 'recommended'"
 			ref="tl"
@@ -24,7 +30,6 @@
 </template>
 
 <script lang="ts" setup>
-import XNotes from '@/components/MkNotes.vue';
 import XTimeline from '@/components/MkTimeline.vue';
 import MkTab from '@/components/MkTab.vue';
 import { defaultStore } from '@/store';
@@ -32,14 +37,6 @@ import { i18n } from '@/i18n';
 import { instance } from '@/instance';
 import { $i } from '@/account';
 
-const hotPagination = {
-	endpoint: 'notes/featured' as const,
-	limit: 20,
-	params: {
-		origin: 'combined',
-	}
-}
-
 const tab = $computed({
 	get: () => defaultStore.reactiveState.discoverTl.value.src,
 	set: (x) => saveSrc(x),
diff --git a/packages/client/src/pages/timeline.foryou.vue b/packages/client/src/pages/timeline.foryou.vue
index bcfe7b6dfd..14812103ff 100644
--- a/packages/client/src/pages/timeline.foryou.vue
+++ b/packages/client/src/pages/timeline.foryou.vue
@@ -30,7 +30,6 @@
 </template>
 
 <script lang="ts" setup>
-// import XNotes from '@/components/MkNotes.vue';
 import XTimeline from '@/components/MkTimeline.vue';
 import MkTab from '@/components/MkTab.vue';
 import { defaultStore } from '@/store';