diff --git a/locales/en-US.yml b/locales/en-US.yml
index 16e7aa7cb..9a5d35d81 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -201,6 +201,8 @@ clearCachedFiles: "Clear cache"
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
blockedInstances: "Blocked Instances"
blockedInstancesDescription: "List the hostnames of the instances that you want to block. Listed instances will no longer be able to communicate with this instance."
+hiddenTags: "Hidden Hashtags"
+hiddenTagsDescription: "List the hashtags (without the #) of the hashtags you wish to hide from trending and explore. Hidden hashtags are still discoverable via other means."
muteAndBlock: "Mutes and Blocks"
mutedUsers: "Muted users"
blockedUsers: "Blocked users"
diff --git a/packages/client/src/pages/admin/hashtags.vue b/packages/client/src/pages/admin/hashtags.vue
new file mode 100644
index 000000000..c2ecbcf3a
--- /dev/null
+++ b/packages/client/src/pages/admin/hashtags.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+ {{ i18n.ts.hiddenTags }}
+ {{ i18n.ts.hiddenTagsDescription }}
+
+
+
+ {{ i18n.ts.save }}
+
+
+
+
+
+
diff --git a/packages/client/src/pages/admin/index.vue b/packages/client/src/pages/admin/index.vue
index 1e4438a66..881105a23 100644
--- a/packages/client/src/pages/admin/index.vue
+++ b/packages/client/src/pages/admin/index.vue
@@ -181,6 +181,12 @@ const menuDef = $computed(() => [
to: "/admin/emojis",
active: currentPage?.route.name === "emojis",
},
+ {
+ icon: "ph-hash ph-bold ph-lg",
+ text: i18n.ts.hashtags,
+ to: "/admin/hashtags",
+ active: currentPage?.route.name === "hashtags",
+ },
{
icon: "ph-planet ph-bold ph-lg",
text: i18n.ts.federation,
diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts
index 8276e891c..a76c322bf 100644
--- a/packages/client/src/router.ts
+++ b/packages/client/src/router.ts
@@ -450,6 +450,11 @@ export const routes = [
name: "users",
component: page(() => import("./pages/admin/users.vue")),
},
+ {
+ path: "/hashtags",
+ name: "hashtags",
+ component: page(() => import("./pages/admin/hashtags.vue")),
+ },
{
path: "/emojis",
name: "emojis",