diff --git a/apps/frontend/src/pages/plus.vue b/apps/frontend/src/pages/plus.vue
index 42fbcb6529..4659abb40e 100644
--- a/apps/frontend/src/pages/plus.vue
+++ b/apps/frontend/src/pages/plus.vue
@@ -99,7 +99,7 @@ import { products } from "~/generated/state.json";
const title = "Subscribe to Modrinth Plus!";
const description =
- "Subscribe to Modrinth Plus to go ad-free, support Modrinth's development, and get an exclusive profile badge! Half your subscription goes directly to Modrinth creators.";
+ "Subscribe to Modrinth Plus to go ad-free, support Modrinth's development, and get an exclusive profile badges! Half your subscription goes directly to Modrinth creators.";
useSeoMeta({
title,
diff --git a/apps/frontend/src/pages/search/[searchProjectType].vue b/apps/frontend/src/pages/search/[searchProjectType].vue
index ebce581f46..e1226d72b3 100644
--- a/apps/frontend/src/pages/search/[searchProjectType].vue
+++ b/apps/frontend/src/pages/search/[searchProjectType].vue
@@ -289,8 +289,14 @@
v-if="flags.newProjectCards"
:to="`/${projectType.id}/${result.slug ? result.slug : result.project_id}`"
>
-
-
+
+
diff --git a/apps/frontend/src/pages/user/[id].vue b/apps/frontend/src/pages/user/[id].vue
index 239dab7c95..6f8a60681e 100644
--- a/apps/frontend/src/pages/user/[id].vue
+++ b/apps/frontend/src/pages/user/[id].vue
@@ -55,51 +55,7 @@
+
+
diff --git a/packages/ui/src/components/collection/CollectionStatusBadge.vue b/packages/ui/src/components/collection/CollectionStatusBadge.vue
new file mode 100644
index 0000000000..5863785141
--- /dev/null
+++ b/packages/ui/src/components/collection/CollectionStatusBadge.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts
index 9aae805a43..c2ce1ef2e7 100644
--- a/packages/ui/src/components/index.ts
+++ b/packages/ui/src/components/index.ts
@@ -20,6 +20,7 @@ export { default as FileInput } from './base/FileInput.vue'
export { default as LoadingIndicator } from './base/LoadingIndicator.vue'
export { default as ManySelect } from './base/ManySelect.vue'
export { default as MarkdownEditor } from './base/MarkdownEditor.vue'
+export { default as NavTabs } from './base/NavTabs.vue'
export { default as Notifications } from './base/Notifications.vue'
export { default as OverflowMenu } from './base/OverflowMenu.vue'
export { default as Page } from './base/Page.vue'
@@ -34,6 +35,7 @@ export { default as ScrollablePanel } from './base/ScrollablePanel.vue'
export { default as ServerNotice } from './base/ServerNotice.vue'
export { default as SimpleBadge } from './base/SimpleBadge.vue'
export { default as Slider } from './base/Slider.vue'
+export { default as SmartClickable } from './base/SmartClickable.vue'
export { default as StatItem } from './base/StatItem.vue'
export { default as TagItem } from './base/TagItem.vue'
export { default as TeleportDropdownMenu } from './base/TeleportDropdownMenu.vue'
@@ -78,6 +80,7 @@ export { default as ProjectSidebarCompatibility } from './project/ProjectSidebar
export { default as ProjectSidebarCreators } from './project/ProjectSidebarCreators.vue'
export { default as ProjectSidebarDetails } from './project/ProjectSidebarDetails.vue'
export { default as ProjectSidebarLinks } from './project/ProjectSidebarLinks.vue'
+export { default as ProjectsList } from './project/ProjectsList.vue'
export { default as ProjectStatusBadge } from './project/ProjectStatusBadge.vue'
// Search
@@ -100,5 +103,23 @@ export { default as VersionSummary } from './version/VersionSummary.vue'
// Settings
export { default as ThemeSelector } from './settings/ThemeSelector.vue'
+// User
+export { default as UserBadge } from './user/UserBadge.vue'
+export { default as UserHeader } from './user/UserHeader.vue'
+export { default as UserSidebarBadges } from './user/UserSidebarBadges.vue'
+export { default as UserSidebarCollections } from './user/UserSidebarCollections.vue'
+export { default as UserSidebarOrganizations } from './user/UserSidebarOrganizations.vue'
+
+// Organization
+export { default as OrganizationHeader } from './organization/OrganizationHeader.vue'
+export { default as OrganizationSidebarMembers } from './organization/OrganizationSidebarMembers.vue'
+
+// Collection
+export { default as CollectionHeader } from './collection/CollectionHeader.vue'
+export { default as CollectionSidebarCurator } from './collection/CollectionSidebarCurator.vue'
+export { default as CollectionSidebarDescription } from './collection/CollectionSidebarDescription.vue'
+export { default as CollectionSidebarDetails } from './collection/CollectionSidebarDetails.vue'
+export { default as CollectionStatusBadge } from './collection/CollectionStatusBadge.vue'
+
// Servers
export { default as BackupWarning } from './servers/backups/BackupWarning.vue'
diff --git a/packages/ui/src/components/modal/TabbedModal.vue b/packages/ui/src/components/modal/TabbedModal.vue
index bc3f2f763b..ec0d08d0cd 100644
--- a/packages/ui/src/components/modal/TabbedModal.vue
+++ b/packages/ui/src/components/modal/TabbedModal.vue
@@ -1,5 +1,5 @@
@@ -32,7 +40,7 @@ defineExpose({ selectedTab, setTab })