From ddc8f62a16f42c1992be63ab76c915dd3df83d59 Mon Sep 17 00:00:00 2001
From: naskya <m@naskya.net>
Date: Wed, 6 Mar 2024 09:02:09 +0900
Subject: [PATCH] meta: remove *.joinfirefish.org URLs

---
 locales/bg-BG.yml                             |  1 -
 locales/ca-ES.yml                             |  1 -
 locales/de-DE.yml                             |  1 -
 locales/en-US.yml                             |  4 +--
 locales/es-ES.yml                             |  1 -
 locales/fr-FR.yml                             |  1 -
 locales/id-ID.yml                             |  1 -
 locales/it-IT.yml                             |  1 -
 locales/ja-JP.yml                             |  3 +--
 locales/ko-KR.yml                             |  1 -
 locales/no-NO.yml                             |  1 -
 locales/pl-PL.yml                             |  1 -
 locales/ru-RU.yml                             |  1 -
 locales/th-TH.yml                             |  1 -
 locales/tr-TR.yml                             |  1 -
 locales/uk-UA.yml                             |  1 -
 locales/vi-VN.yml                             |  1 -
 locales/zh-CN.yml                             |  3 +--
 locales/zh-TW.yml                             |  3 +--
 .../src/remote/activitypub/renderer/index.ts  |  2 +-
 packages/backend/src/server/nodeinfo.ts       |  2 +-
 packages/backend/test/mfm.ts                  | 26 +++++++++----------
 packages/client/src/components/MkSample.vue   |  2 +-
 packages/client/src/components/MkSignup.vue   |  5 ----
 packages/client/src/scripts/helpMenu.ts       | 19 +++++++-------
 packages/client/src/ui/visitor/a.vue          |  4 ++-
 packages/client/src/ui/visitor/b.vue          |  4 ++-
 packages/client/src/ui/visitor/kanban.vue     |  4 ++-
 28 files changed, 39 insertions(+), 57 deletions(-)

diff --git a/locales/bg-BG.yml b/locales/bg-BG.yml
index 339e562a43..2ac83494ed 100644
--- a/locales/bg-BG.yml
+++ b/locales/bg-BG.yml
@@ -778,7 +778,6 @@ instanceDescription: Описание на сървъра
 accept: Приемане
 enableLocalTimeline: Включване на местния инфопоток
 enableGlobalTimeline: Включване на глобалния инфопоток
-findOtherInstance: Намиране на друг сървър
 removeMember: Премахване на член
 isAdmin: Администратор
 isModerator: Модератор
diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml
index de588c2185..f38779bda4 100644
--- a/locales/ca-ES.yml
+++ b/locales/ca-ES.yml
@@ -2067,7 +2067,6 @@ _relayStatus:
 deleted: Eliminat
 editNote: Edita la publicació
 edited: 'Editat el {date} {time}'
-findOtherInstance: Cercar un altre servidor
 signupsDisabled: Actualment, les inscripcions en aquest servidor estan desactivades,
   però sempre podeu registrar-vos en un altre servidor. Si teniu un codi d'invitació
   per a aquest servidor, introduïu-lo a continuació.
diff --git a/locales/de-DE.yml b/locales/de-DE.yml
index 42228695a4..44e8fb1d7c 100644
--- a/locales/de-DE.yml
+++ b/locales/de-DE.yml
@@ -2024,7 +2024,6 @@ moveAccountDescription: 'Dieser Vorgang kann nicht rückgängig gemacht werden!
   sie vor dem Umzug dieses Nutzerkontos sicher, dass Sie einen Namen für Ihr neues
   Nutzerkonto eingerichtet haben. Bitte geben sie die Bezeichnung des neuen Nutzerkontos
   wie folgt ein: @name@server.xyz'
-findOtherInstance: Einen anderen Server finden
 sendPushNotificationReadMessage: Löschung der Push-Benachrichtigungen sobald die entsprechenden
   Benachrichtigungen oder Nachrichten gelesen wurden
 signupsDisabled: Derzeit sind keine Anmeldungen auf diesem Server möglich! Anmeldungen
diff --git a/locales/en-US.yml b/locales/en-US.yml
index a2298d9081..e335c9aba2 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -1104,10 +1104,8 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea
   advanced syntax, such as conditional branching, cannot be used here."
 enableCustomKaTeXMacro: "Enable custom KaTeX macros"
 noteId: "Post ID"
-signupsDisabled: "Signups on this server are currently disabled, but you can always
-  sign up at another server! If you have an invitation code for this server, please
+signupsDisabled: "Signups on this server are currently disabled. If you have an invitation code for this server, please
   enter it below."
-findOtherInstance: "Find another server"
 apps: "Apps"
 sendModMail: "Send Moderation Notice"
 preventAiLearning: "Prevent AI bot scraping"
diff --git a/locales/es-ES.yml b/locales/es-ES.yml
index b0b1fc28e1..b0a7059f9d 100644
--- a/locales/es-ES.yml
+++ b/locales/es-ES.yml
@@ -1985,7 +1985,6 @@ deleted: Eliminado
 edited: 'Editado a las {date} {time}'
 editNote: Editar publicación
 silenceThisInstance: Silenciar este servidor
-findOtherInstance: Buscar otro servidor
 userSaysSomethingReasonRenote: '{name} impulsó una publicación que contiene {reason]'
 enableRecommendedTimeline: Habilitar línea de tiempo "Recomendado"
 searchPlaceholder: Buscar en Firefish
diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml
index 05c70afaf4..429ce14835 100644
--- a/locales/fr-FR.yml
+++ b/locales/fr-FR.yml
@@ -2090,7 +2090,6 @@ _experiments:
     de leurs anciens comptes Firefish, Misskey, Mastodon, Akkoma et Pleroma. Cela
     peut entraîner des ralentissements lors du chargement si votre file d'attente
     est congestionnée.
-findOtherInstance: Trouver un autre serveur
 userSaysSomethingReasonQuote: '{name} a cité une publication contenant {reason}'
 signupsDisabled: Les inscriptions sur ce serveur sont actuellement désactivés, mais
   vous pouvez toujours vous inscrire sur un autre serveur ! Si vous avez un code d'invitation
diff --git a/locales/id-ID.yml b/locales/id-ID.yml
index 3b411ae60c..6b8e2b9407 100644
--- a/locales/id-ID.yml
+++ b/locales/id-ID.yml
@@ -2007,7 +2007,6 @@ enterSendsMessage: Tekan Enter pada Pesan untuk mengirim pesan (matikan dengan C
   + Enter)
 showAdminUpdates: Indikasi versi Firefish baru tersedia (hanya admin)
 noteId: ID Postingan
-findOtherInstance: Cari server lain
 caption: Deskripsi itomatis
 splash: Layar Percik
 migration: Migrasi
diff --git a/locales/it-IT.yml b/locales/it-IT.yml
index 6a8239d007..f12b2ade4a 100644
--- a/locales/it-IT.yml
+++ b/locales/it-IT.yml
@@ -1839,7 +1839,6 @@ customKaTeXMacro: Macro KaTeX personalizzate
 signupsDisabled: Le iscrizioni su questo server al momento non sono possibili, ma
   puoi sempre iscriverti su un altro server! Se invece hai un codice di invito per
   questo server, inseriscilo qua sotto.
-findOtherInstance: Scegli un altro server
 apps: App
 expandOnNoteClick: Apri i post con un click
 userSaysSomethingReasonReply: '{name} ha risposto a un post che contiene {reason}'
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 5a99b7d935..9dcfdbac83 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1942,8 +1942,7 @@ deleted: 削除済み
 editNote: 投稿を編集
 edited: '編集済み: {date} {time}'
 signupsDisabled: 
-  現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。招待コードをお持ちでない場合にも、新規登録を開放している他のサーバーには入れますよ!
-findOtherInstance: 他のサーバーを探す
+  現在、このサーバーでは新規登録が一般開放されていません。招待コードをお持ちの場合には、以下の欄に入力してください。
 newer: 新しい投稿
 older: 古い投稿
 accessibility: アクセシビリティ
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index ace8aa5f42..75f347a96a 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -1824,7 +1824,6 @@ pushNotificationNotSupported: 브라우저 및 서버가 푸시 알림을 지원
 enableRecommendedTimeline: 추천 타임라인을 활성화
 pushNotificationAlreadySubscribed: 푸시 알림이 활성화되었습니다
 caption: 자동으로 설명 붙이기
-findOtherInstance: 다른 서버 둘러보기
 enableIdenticonGeneration: 유저 별 Identicon의 생성을 활성화
 secureModeInfo: 인증 정보가 없는 리모트 서버로부터의 요청에 응답하지 않습니다.
 allowedInstances: 허가된 서버
diff --git a/locales/no-NO.yml b/locales/no-NO.yml
index d8b80e0e2c..bd643c34e1 100644
--- a/locales/no-NO.yml
+++ b/locales/no-NO.yml
@@ -1196,7 +1196,6 @@ customKaTeXMacroDescription: 'Sett opp makroer for å skrive matematiske uttrykk
 signupsDisabled: Registreringer av nye konti på denne tjeneren er slått av, men du
   kan alltids registrere deg på en annen tjener! Hvis du har en invitasjonskode for
   denne tjeneren, skriv den inn under.
-findOtherInstance: Finn en annen tjener
 preventAiLearningDescription: Ber tredjeparts AI-språkmodeller om å ikke bruke innhold
   du laster opp, sliks om poster og bilder.
 enableCustomKaTeXMacro: Slå på egne KaTeX-makroer
diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml
index 73b3939abb..95a05009bd 100644
--- a/locales/pl-PL.yml
+++ b/locales/pl-PL.yml
@@ -1992,7 +1992,6 @@ deleted: Usunięte
 editNote: Edytuj wpis
 edited: 'Edytowano o {date} {time}'
 silenced: Wyciszony
-findOtherInstance: Znajdź inny serwer
 userSaysSomethingReasonReply: '{name} odpowiedział na wpis zawierający {reason}'
 userSaysSomethingReasonRenote: '{name} podbił post zawierający {reason}'
 signupsDisabled: Rejestracja na tym serwerze jest obecnie zamknięta, ale zawsze możesz
diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml
index 64742e5479..df9d183433 100644
--- a/locales/ru-RU.yml
+++ b/locales/ru-RU.yml
@@ -2086,7 +2086,6 @@ enableServerMachineStats: Включить статистику серверно
 enableIdenticonGeneration: Включить генерацию Identicon
 reactionPickerSkinTone: Предпочитаемый цвет кожи эмодзи
 sendModMail: Отправить сообщение о модерации
-findOtherInstance: Найти другой сервер
 signupsDisabled: Регистрация на этом сервере сейчас отключена, но вы всегда можете
   зарегистрироваться на другом сервере! Если у вас есть код приглашения на этот сервер,
   пожалуйста, введите его ниже.
diff --git a/locales/th-TH.yml b/locales/th-TH.yml
index 1302f86726..6ae3201f01 100644
--- a/locales/th-TH.yml
+++ b/locales/th-TH.yml
@@ -1288,7 +1288,6 @@ customMOTD: ข้อความหน้าจอเริ่มต้นท
 swipeOnMobile: อนุญาตให้ปัดระหว่างหน้า
 breakFollowConfirm: คุณแน่ใจหรือไม่ที่จะลบผู้ติดตาม?
 defaultReaction: ค่าเริ่มต้นของปฏิกิริยาอีโมจิสำหรับโพสต์ขาออกและขาเข้า
-findOtherInstance: ค้นหาเซิร์ฟเวอร์อื่น
 silenceThisInstance: ปิดเงียบสำหรับเซิร์ฟเวอร์นี้
 antennaInstancesDescription: เขียนชื่อเซิร์ฟเวอร์ได้ 1 ชื่อต่อ 1 บรรทัด
 splash: หน้าจอเริ่มต้น
diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml
index 16206614b3..7a687dc7c4 100644
--- a/locales/tr-TR.yml
+++ b/locales/tr-TR.yml
@@ -1284,7 +1284,6 @@ _emailUnavailable:
   used: Bu mail zaten kullanılıyor
   format: Bu mail adresi yanlış
 apps: Uygulamalar
-findOtherInstance: Başka bir sunucu bul
 showWithSparkles: Parıltılarla göster
 showPopup: Kullanıcıları pop-up ile bilgilendirin
 silencedWarning: Bu sayfa, bu kullanıcılar yöneticinizin susturduğu sunuculardan olduğu
diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml
index f0b7296b78..5e73078a98 100644
--- a/locales/uk-UA.yml
+++ b/locales/uk-UA.yml
@@ -1977,7 +1977,6 @@ license: Ліцензія
 signupsDisabled: Реєстрація на цьому сервері наразі відключена, але ви завжди можете
   зареєструватися на іншому сервері! Якщо у вас є код запрошення на цей сервер, будь
   ласка, введіть його нижче.
-findOtherInstance: Знайти інший сервер
 customKaTeXMacro: Користувацькі макроси KaTeX
 enableCustomKaTeXMacro: Увімкнути користувацькі макроси KaTeX
 apps: Додатки
diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml
index 119c745ac3..527258bdad 100644
--- a/locales/vi-VN.yml
+++ b/locales/vi-VN.yml
@@ -1908,7 +1908,6 @@ renoteMute: Ẩn lượt chia sẻ
 renoteUnmute: Bỏ ẩn lượt chia sẻ
 searchPlaceholder: Lướt Firefish
 edited: Đã sửa {date} {time}
-findOtherInstance: Tìm máy chủ khác
 noThankYou: Từ chối
 _filters:
   withFile: Có file
diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml
index 06bbecb746..130a9e0647 100644
--- a/locales/zh-CN.yml
+++ b/locales/zh-CN.yml
@@ -1912,10 +1912,9 @@ _skinTones:
   mediumDark: 中等偏深
 isModerator: 监察员
 isAdmin: 管理员
-findOtherInstance: 寻找其它服务器
 moveFromDescription: 这将为您的旧账号设置一个别名,以便您可以从该旧账号迁移到当前账号。在从旧账号迁移之前执行此操作。请输入格式如 @person@server.com
   的账号标签
-signupsDisabled: 该服务器目前关闭注册,但您随时可以在另一台服务器上注册!如果您有该服务器的邀请码,请在下面输入。
+signupsDisabled: 该服务器目前关闭注册。如果您有该服务器的邀请码,请在下面输入。
 silencedWarning: 显示这个页面是因为这些用户来自您的管理员设置的禁言服务器,所以他们有可能是垃圾信息。
 isBot: 这个账号是一个自动化账号
 moveAccountDescription: 这个过程是不可逆的。在迁移之前,请确保您已在新账号上为当前账号设置了别名。请输入格式如 @person@server.com
diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml
index 44e7c93b24..97ddaf1b3f 100644
--- a/locales/zh-TW.yml
+++ b/locales/zh-TW.yml
@@ -1870,7 +1870,6 @@ _experiments:
   enablePostImports: 啟用匯入貼文的功能
   postImportsCaption: 
     允許使用者從舊有的Firefish・Misskey・Mastodon・Akkoma・Pleroma帳號匯入貼文。在伺服器佇列堵塞時匯入貼文可能會導致載入速度變慢。
-findOtherInstance: 找找另一個伺服器
 noGraze: 瀏覽器擴充元件 "Graze for Mastodon" 會與Firefish發生衝突,請停用該擴充元件。
 userSaysSomethingReasonRenote: '{name} 轉發了包含 {reason} 的貼文'
 pushNotificationNotSupported: 你的瀏覽器或伺服器不支援推送通知
@@ -1928,7 +1927,7 @@ isModerator: 板主
 isAdmin: 管理員
 isPatron: Firefish 項目贊助者
 silencedWarning: 顯示此頁面是因為這些使用者來自您伺服器管理員已靜音的伺服器,因此他們可能是垃圾訊息。
-signupsDisabled: 此伺服器目前停止註冊,但您隨時可以在另一台伺服器上註冊!如果您有此伺服器的邀請碼,請在下面輸入。
+signupsDisabled: 此伺服器目前停止註冊。如果您有此伺服器的邀請碼,請在下面輸入。
 showPopup: 通過彈出式視窗通知使用者
 showWithSparkles: 讓標題閃閃發光
 youHaveUnreadAnnouncements: 您有未讀的公告
diff --git a/packages/backend/src/remote/activitypub/renderer/index.ts b/packages/backend/src/remote/activitypub/renderer/index.ts
index 734d1198c9..2b6229b3e4 100644
--- a/packages/backend/src/remote/activitypub/renderer/index.ts
+++ b/packages/backend/src/remote/activitypub/renderer/index.ts
@@ -36,7 +36,7 @@ export const renderActivity = (x: any): IActivity | null => {
 					PropertyValue: "schema:PropertyValue",
 					value: "schema:value",
 					// Firefish
-					firefish: "https://joinfirefish.org/ns#",
+					firefish: "https://firefish.dev/ns#",
 					speakAsCat: "firefish:speakAsCat",
 					// Misskey
 					misskey: "https://misskey-hub.net/ns#",
diff --git a/packages/backend/src/server/nodeinfo.ts b/packages/backend/src/server/nodeinfo.ts
index a05992da59..1cb8eb1eaf 100644
--- a/packages/backend/src/server/nodeinfo.ts
+++ b/packages/backend/src/server/nodeinfo.ts
@@ -53,7 +53,7 @@ const nodeinfo2 = async () => {
 			name: "firefish",
 			version: config.version,
 			repository: meta.repositoryUrl,
-			homepage: "https://joinfirefish.org/",
+			homepage: "https://firefish.dev/firefish/firefish",
 		},
 		protocols: ["activitypub"],
 		services: {
diff --git a/packages/backend/test/mfm.ts b/packages/backend/test/mfm.ts
index 81ed95848a..97e8e15e91 100644
--- a/packages/backend/test/mfm.ts
+++ b/packages/backend/test/mfm.ts
@@ -55,33 +55,33 @@ describe("fromHtml", () => {
 
 	it("link with different text", () => {
 		assert.deepStrictEqual(
-			fromHtml('<p>a <a href="https://joinfirefish.org/b">c</a> d</p>'),
-			"a [c](https://joinfirefish.org/b) d",
+			fromHtml('<p>a <a href="https://firefish.dev/firefish">c</a> d</p>'),
+			"a [c](https://firefish.dev/firefish) d",
 		);
 	});
 
 	it("link with different text, but not encoded", () => {
 		assert.deepStrictEqual(
-			fromHtml('<p>a <a href="https://joinfirefish.org/ä">c</a> d</p>'),
-			"a [c](<https://joinfirefish.org/ä>) d",
+			fromHtml('<p>a <a href="https://firefish.dev/ä">c</a> d</p>'),
+			"a [c](<https://firefish.dev/ä>) d",
 		);
 	});
 
 	it("link with same text", () => {
 		assert.deepStrictEqual(
 			fromHtml(
-				'<p>a <a href="https://joinfirefish.org/b">https://joinfirefish.org/b</a> d</p>',
+				'<p>a <a href="https://firefish.dev/firefish/firefish">https://firefish.dev/firefish/firefish</a> d</p>',
 			),
-			"a https://joinfirefish.org/b d",
+			"a https://firefish.dev/firefish/firefish d",
 		);
 	});
 
 	it("link with same text, but not encoded", () => {
 		assert.deepStrictEqual(
 			fromHtml(
-				'<p>a <a href="https://joinfirefish.org/ä">https://joinfirefish.org/ä</a> d</p>',
+				'<p>a <a href="https://firefish.dev/ä">https://firefish.dev/ä</a> d</p>',
 			),
-			"a <https://joinfirefish.org/ä> d",
+			"a <https://firefish.dev/ä> d",
 		);
 	});
 
@@ -98,8 +98,8 @@ describe("fromHtml", () => {
 
 	it("link without text", () => {
 		assert.deepStrictEqual(
-			fromHtml('<p>a <a href="https://joinfirefish.org/b"></a> d</p>'),
-			"a https://joinfirefish.org/b d",
+			fromHtml('<p>a <a href="https://firefish.dev/b"></a> d</p>'),
+			"a https://firefish.dev/b d",
 		);
 	});
 
@@ -110,15 +110,15 @@ describe("fromHtml", () => {
 	it("mention", () => {
 		assert.deepStrictEqual(
 			fromHtml(
-				'<p>a <a href="https://joinfirefish.org/@user" class="u-url mention">@user</a> d</p>',
+				'<p>a <a href="https://info.firefish.dev/@firefish" class="u-url mention">@firefish</a> d</p>',
 			),
-			"a @user@joinfirefish.org d",
+			"a @firefish@info.firefish.dev d",
 		);
 	});
 
 	it("hashtag", () => {
 		assert.deepStrictEqual(
-			fromHtml('<p>a <a href="https://joinfirefish.org/tags/a">#a</a> d</p>', [
+			fromHtml('<p>a <a href="https://info.firefish.dev/tags/a">#a</a> d</p>', [
 				"#a",
 			]),
 			"a #a d",
diff --git a/packages/client/src/components/MkSample.vue b/packages/client/src/components/MkSample.vue
index 6d87494488..a962f340d2 100644
--- a/packages/client/src/components/MkSample.vue
+++ b/packages/client/src/components/MkSample.vue
@@ -55,7 +55,7 @@ export default defineComponent({
 				this.$i ? this.$i.username : "guest"
 			}.\nAlso, here is ${config.url} and [example link](${
 				config.url
-			}). for more details, see https://joinfirefish.org.\nAs you know #misskey is open-source software.`,
+			}). for more details, see <https://firefish.dev/firefish/firefish>.\nAs you know #Firefish is open-source software.`,
 		};
 	},
 
diff --git a/packages/client/src/components/MkSignup.vue b/packages/client/src/components/MkSignup.vue
index d855e09a13..3b4cd48890 100644
--- a/packages/client/src/components/MkSignup.vue
+++ b/packages/client/src/components/MkSignup.vue
@@ -1,11 +1,6 @@
 <template>
 	<div v-if="instance.disableRegistration" style="margin-bottom: 1rem">
 		<p>{{ i18n.ts.signupsDisabled }}</p>
-		<a href="https://joinfirefish.org/join">
-			<MkButton rounded gradate
-				>{{ i18n.ts.findOtherInstance }}
-			</MkButton>
-		</a>
 	</div>
 	<form
 		class="qlvuhzng _formRoot"
diff --git a/packages/client/src/scripts/helpMenu.ts b/packages/client/src/scripts/helpMenu.ts
index 0bb3177e70..4fb40878de 100644
--- a/packages/client/src/scripts/helpMenu.ts
+++ b/packages/client/src/scripts/helpMenu.ts
@@ -1,4 +1,5 @@
-import XTutorial from "../components/MkTutorialDialog.vue";
+import XTutorial from "@/components/MkTutorialDialog.vue";
+import XCheatSheet from "@/components/MkCheatSheetDialog.vue";
 import { defaultStore } from "@/store";
 import { instance } from "@/instance";
 import { host } from "@/config";
@@ -53,14 +54,6 @@ export function openHelpMenu_(ev: MouseEvent) {
 			...(instanceSpecificItems.length >= 2 ? [null] : []),
 			...instanceSpecificItems,
 			null,
-			{
-				type: "button",
-				text: i18n.ts.apps,
-				icon: `${icon("ph-device-mobile")}`,
-				action: () => {
-					window.open("https://joinfirefish.org/apps", "_blank");
-				},
-			},
 			{
 				type: "button",
 				action: async () => {
@@ -70,6 +63,14 @@ export function openHelpMenu_(ev: MouseEvent) {
 				text: i18n.ts.replayTutorial,
 				icon: `${icon("ph-circle-wavy-question")}`,
 			},
+			{
+				type: "button",
+				text: i18n.ts._mfm.cheatSheet,
+				icon: "ph-question ph-bold ph-lg",
+				action: async () => {
+					os.popup(XCheatSheet, {}, {}, "closed");
+				},
+			},
 			null,
 			{
 				type: "parent",
diff --git a/packages/client/src/ui/visitor/a.vue b/packages/client/src/ui/visitor/a.vue
index 6006e407d1..bc8f601457 100644
--- a/packages/client/src/ui/visitor/a.vue
+++ b/packages/client/src/ui/visitor/a.vue
@@ -63,7 +63,9 @@
 					>
 					<small
 						>Powered by
-						<a href="https://joinfirefish.org/" target="_blank"
+						<a
+							href="https://firefish.dev/firefish/firefish"
+							target="_blank"
 							>Firefish</a
 						></small
 					>
diff --git a/packages/client/src/ui/visitor/b.vue b/packages/client/src/ui/visitor/b.vue
index 4e7fbf2f7d..5d5a7a31cd 100644
--- a/packages/client/src/ui/visitor/b.vue
+++ b/packages/client/src/ui/visitor/b.vue
@@ -18,7 +18,9 @@
 					>
 					<small
 						>Powered by
-						<a href="https://joinfirefish.org/" target="_blank"
+						<a
+							href="https://firefish.dev/firefish/firefish"
+							target="_blank"
 							>Firefish</a
 						></small
 					>
diff --git a/packages/client/src/ui/visitor/kanban.vue b/packages/client/src/ui/visitor/kanban.vue
index c92dc9fde3..2a53a2e070 100644
--- a/packages/client/src/ui/visitor/kanban.vue
+++ b/packages/client/src/ui/visitor/kanban.vue
@@ -69,7 +69,9 @@
 						>
 						<small
 							>Powered by
-							<a href="https://joinfirefish.org/" target="_blank"
+							<a
+								href="https://firefish.dev/firefish/firefish"
+								target="_blank"
 								>Firefish</a
 							></small
 						>