diff --git a/web/app/[locale]/(legal)/privacy-policy/page.tsx b/web/app/[locale]/(legal)/privacy-policy/page.tsx index fc945d36..98792851 100644 --- a/web/app/[locale]/(legal)/privacy-policy/page.tsx +++ b/web/app/[locale]/(legal)/privacy-policy/page.tsx @@ -21,7 +21,7 @@ export default function PrivacyPolicyPage() {
For purposes of this policy, “Site” refers to the Company’s website at{" "} - cmux.dev. + cmux.com. “Application” refers to the cmux desktop application for macOS. “Service” refers to the Site and Application collectively. The terms “we,” “us,” and diff --git a/web/app/[locale]/(legal)/terms-of-service/page.tsx b/web/app/[locale]/(legal)/terms-of-service/page.tsx index 6a0a72ec..76b3f48b 100644 --- a/web/app/[locale]/(legal)/terms-of-service/page.tsx +++ b/web/app/[locale]/(legal)/terms-of-service/page.tsx @@ -13,7 +13,7 @@ export default function TermsOfServicePage() {
The website located at{" "} - cmux.dev (the + cmux.com (the “Site”) and the cmux desktop application (the “Application”) are copyrighted works belonging to Manaflow (“Company”, “us”, “our”, and diff --git a/web/app/[locale]/layout.tsx b/web/app/[locale]/layout.tsx index 4e1f6a79..cc230873 100644 --- a/web/app/[locale]/layout.tsx +++ b/web/app/[locale]/layout.tsx @@ -31,7 +31,7 @@ export async function generateMetadata({ const { locale } = await params; const t = await getTranslations({ locale, namespace: "meta" }); const url = - locale === "en" ? "https://cmux.dev" : `https://cmux.dev/${locale}`; + locale === "en" ? "https://cmux.com" : `https://cmux.com/${locale}`; return { title: t("title"), description: t("description"), @@ -61,7 +61,7 @@ export async function generateMetadata({ title: t("title"), description: t("ogDescription"), }, - metadataBase: new URL("https://cmux.dev"), + metadataBase: new URL("https://cmux.com"), }; } @@ -94,7 +94,7 @@ export default async function LocaleLayout({ name: "cmux", operatingSystem: "macOS", applicationCategory: "DeveloperApplication", - url: "https://cmux.dev", + url: "https://cmux.com", downloadUrl: "https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg", description: diff --git a/web/app/robots.ts b/web/app/robots.ts index 8cb44e16..1b471bcf 100644 --- a/web/app/robots.ts +++ b/web/app/robots.ts @@ -3,6 +3,6 @@ import type { MetadataRoute } from "next"; export default function robots(): MetadataRoute.Robots { return { rules: { userAgent: "*", allow: "/" }, - sitemap: "https://cmux.dev/sitemap.xml", + sitemap: "https://cmux.com/sitemap.xml", }; } diff --git a/web/app/sitemap.ts b/web/app/sitemap.ts index dfac9bb5..6705f4dc 100644 --- a/web/app/sitemap.ts +++ b/web/app/sitemap.ts @@ -2,7 +2,7 @@ import type { MetadataRoute } from "next"; import { locales } from "../i18n/routing"; export default function sitemap(): MetadataRoute.Sitemap { - const base = "https://cmux.dev"; + const base = "https://cmux.com"; const paths = [ { path: "", lastModified: new Date(), changeFrequency: "weekly" as const, priority: 1 }, diff --git a/web/messages/ar.json b/web/messages/ar.json index 099b3578..d8a65e1c 100644 --- a/web/messages/ar.json +++ b/web/messages/ar.json @@ -575,7 +575,7 @@ "afruth": "أعجبني، استخدمته في اليوم الماضي على ثلاثة مشاريع متوازية كل منها بعدة worktrees. استخدامه مع lazygit وyazi / nvim جعلني أكثر إنتاجية قليلاً من المعتاد دون الحاجة لملاحقة عدة نسخ من ghostty / iTerm. كما يبدو أكثر طبيعية من tmux.", "northprint": "جربت cmux لأنه بدا جيداً، وهو جيد فعلاً", "indykish": "cmux جيد جداً.", - "kataring": "انتقلت إلى cmux.dev", + "kataring": "انتقلت إلى cmux.com", "scottw": "كان هذا اكتشافاً مفيداً جداً. لا أستطيع التوصية به بما فيه الكفاية.", "johnblythe": "حصلت عليه في عطلة نهاية الأسبوع وأحببته. كنت أنتظر شيئاً كهذا.", "bchris91": "هذا بالضبط ما أردته. عمل مذهل، شكراً لكم!", diff --git a/web/messages/bs.json b/web/messages/bs.json index 6210c4b9..d68f4cec 100644 --- a/web/messages/bs.json +++ b/web/messages/bs.json @@ -575,7 +575,7 @@ "afruth": "Sviđa mi se, koristio sam ga proteklog dana na tri paralelna projekta, svaki sa nekoliko worktree-ova. Imati ovo u paru sa lazygit-om i yazi / nvim-om učinilo me malo produktivnijim nego obično bez jurnjave za više ghostty / iTerm instanci. Takođe se osjeća prirodnije od tmux-a.", "northprint": "Probao sam cmux jer je izgledao dobro — dobar je", "indykish": "cmux je prilično dobar.", - "kataring": "Prešao sam na cmux.dev", + "kataring": "Prešao sam na cmux.com", "scottw": "Ovo je bio tako koristan nalaz. Ne mogu ga dovoljno preporučiti.", "johnblythe": "uzeo ovo tokom vikenda i volio sam ga. čekao sam nešto ovako.", "bchris91": "Ovo je tačno ono što sam htio. Nevjerovatan posao, hvala!", diff --git a/web/messages/da.json b/web/messages/da.json index eeaf4a93..7481fefe 100644 --- a/web/messages/da.json +++ b/web/messages/da.json @@ -575,7 +575,7 @@ "afruth": "Jeg kan lide det, kørte det den seneste dag på tre parallelle projekter hver med flere worktrees. At have det parret med lazygit og yazi / nvim gjorde mig lidt mere produktiv end normalt uden at skulle jage flere ghostty / iTerm-instanser. Føles også mere naturligt end tmux.", "northprint": "Prøvede cmux da det så godt ud — det er godt", "indykish": "cmux er ret godt.", - "kataring": "Skiftede til cmux.dev", + "kataring": "Skiftede til cmux.com", "scottw": "Det har været sådan et nyttigt fund. Jeg kan ikke anbefale det nok.", "johnblythe": "hentede det i weekenden og elskede det. har ventet på noget som dette.", "bchris91": "Det er præcis hvad jeg har ønsket mig. Fantastisk arbejde, tak!", diff --git a/web/messages/de.json b/web/messages/de.json index df68123f..67f5f51b 100644 --- a/web/messages/de.json +++ b/web/messages/de.json @@ -575,7 +575,7 @@ "afruth": "Gefällt mir. Habe es gestern mit drei parallelen Projekten laufen lassen, jedes mit mehreren Worktrees. In Kombination mit lazygit und yazi/nvim war ich etwas produktiver als sonst, ohne mehreren ghostty/iTerm-Instanzen hinterherjagen zu müssen. Fühlt sich auch natürlicher an als tmux.", "northprint": "cmux ausprobiert, weil es gut aussah, und es ist gut", "indykish": "cmux ist ziemlich gut.", - "kataring": "Zu cmux.dev gewechselt", + "kataring": "Zu cmux.com gewechselt", "scottw": "Das war so ein nützlicher Fund. Ich kann es nur weiterempfehlen.", "johnblythe": "Am Wochenende installiert und sofort begeistert. Habe auf sowas gewartet.", "bchris91": "Genau das, was ich wollte. Tolle Arbeit, danke!", diff --git a/web/messages/en.json b/web/messages/en.json index 44437938..b7cd095f 100644 --- a/web/messages/en.json +++ b/web/messages/en.json @@ -577,7 +577,7 @@ "afruth": "I like it, ran it in the past day on three parallel projects each with several worktrees. Having this paired with lazygit and yazi / nvim made me a bit more productive than usual without having to chase multiple ghostty / iTerm instances. Also feels more natural than tmux.", "northprint": "Tried cmux since it looked good — it's good", "indykish": "cmux is pretty good.", - "kataring": "Switched to cmux.dev", + "kataring": "Switched to cmux.com", "scottw": "This has been such a useful find. I can't recommend it enough.", "johnblythe": "grabbed this over the weekend and loved it. been waiting for something like this.", "bchris91": "This is exactly what I've wanted. Amazing job thank you!", diff --git a/web/messages/es.json b/web/messages/es.json index 6913eaaa..0c131b4b 100644 --- a/web/messages/es.json +++ b/web/messages/es.json @@ -575,7 +575,7 @@ "afruth": "Me gusta. Ayer lo use con tres proyectos en paralelo, cada uno con varios worktrees. Combinado con lazygit y yazi/nvim me hizo un poco mas productivo de lo habitual sin tener que perseguir multiples instancias de ghostty/iTerm. Tambien se siente mas natural que tmux.", "northprint": "Probe cmux porque se veia bien, y es bueno", "indykish": "cmux esta bastante bien.", - "kataring": "Me cambie a cmux.dev", + "kataring": "Me cambie a cmux.com", "scottw": "Ha sido un hallazgo muy útil. No puedo recomendarlo suficiente.", "johnblythe": "Lo instalé el fin de semana y me encantó. Estuve esperando algo así.", "bchris91": "Es exactamente lo que quería. ¡Increíble trabajo, gracias!", diff --git a/web/messages/fr.json b/web/messages/fr.json index 61426dd9..51e275d3 100644 --- a/web/messages/fr.json +++ b/web/messages/fr.json @@ -575,7 +575,7 @@ "afruth": "J'aime bien. Je l'ai utilise hier sur trois projets en parallele, chacun avec plusieurs worktrees. En combinaison avec lazygit et yazi/nvim, j'etais un peu plus productif que d'habitude sans avoir a jongler entre plusieurs instances ghostty/iTerm. Ca semble aussi plus naturel que tmux.", "northprint": "J'ai essaye cmux parce que ca avait l'air bien, et c'est bien", "indykish": "cmux est plutot bon.", - "kataring": "Je suis passe a cmux.dev", + "kataring": "Je suis passe a cmux.com", "scottw": "C'est une decouverte tellement utile. Je ne peux que le recommander.", "johnblythe": "Installe ce week-end et j'adore. J'attendais quelque chose comme ca.", "bchris91": "C'est exactement ce que je voulais. Travail incroyable, merci !", diff --git a/web/messages/it.json b/web/messages/it.json index b002fd81..9b013557 100644 --- a/web/messages/it.json +++ b/web/messages/it.json @@ -575,7 +575,7 @@ "afruth": "Mi piace, l'ho usato nell'ultimo giorno su tre progetti paralleli, ciascuno con diversi worktree. Averlo insieme a lazygit e yazi / nvim mi ha reso un po' più produttivo del solito senza dover rincorrere più istanze di ghostty / iTerm. Inoltre sembra più naturale di tmux.", "northprint": "Ho provato cmux perché sembrava buono, ed è buono", "indykish": "cmux è piuttosto buono.", - "kataring": "Sono passato a cmux.dev", + "kataring": "Sono passato a cmux.com", "scottw": "È stata una scoperta così utile. Non lo consiglio mai abbastanza.", "johnblythe": "l'ho preso nel weekend e mi è piaciuto. aspettavo qualcosa del genere.", "bchris91": "Questo è esattamente quello che volevo. Lavoro fantastico, grazie!", diff --git a/web/messages/ja.json b/web/messages/ja.json index ea5d4351..d0371225 100644 --- a/web/messages/ja.json +++ b/web/messages/ja.json @@ -575,7 +575,7 @@ "afruth": "気に入った。昨日3つのプロジェクトをそれぞれ複数のworktreeで並行作業した。lazygitやyazi/nvimと組み合わせると、複数のghostty/iTermインスタンスを追いかけなくても普段より生産性が上がった。tmuxより自然な感じ。", "northprint": "cmux良さそうなので入れてみたけれど、良い", "indykish": "cmux、かなりいい。", - "kataring": "cmux.dev に乗り換えた", + "kataring": "cmux.com に乗り換えた", "scottw": "本当に便利な発見だった。みんなにおすすめしたい。", "johnblythe": "週末に入れて気に入った。こういうのをずっと待ってた。", "bchris91": "まさに欲しかったもの。最高です、ありがとう!", diff --git a/web/messages/km.json b/web/messages/km.json index 128e2142..050f848c 100644 --- a/web/messages/km.json +++ b/web/messages/km.json @@ -571,7 +571,7 @@ "afruth": "ខ្ញុំចូលចិត្តវា ប្រើក្នុងថ្ងៃកន្លងមកជាមួយគម្រោងបីស្របគ្នា នីមួយៗមាន worktree ជាច្រើន។ ការមានវាជាមួយ lazygit និង yazi / nvim ធ្វើឱ្យខ្ញុំផលិតភាពជាងធម្មតាដោយមិនចាំបាច់តាមរក ghostty / iTerm ជាច្រើនវិន្ដូ។ ក៏មានអារម្មណ៍ធម្មជាតិជាង tmux ដែរ។", "northprint": "សាកល្បង cmux ព្រោះវាមើលទៅល្អ — វាល្អពិតមែន", "indykish": "cmux ល្អដែរ។", - "kataring": "ប្ដូរមកប្រើ cmux.dev", + "kataring": "ប្ដូរមកប្រើ cmux.com", "scottw": "នេះជាការរកឃើញដ៏មានប្រយោជន៍។ ខ្ញុំណែនាំវាខ្លាំងណាស់។", "johnblythe": "ទាញយកមកចុងសប្តាហ៍កន្លងមក ហើយចូលចិត្តវា។ រង់ចាំអ្វីបែបនេះយូរហើយ។", "bchris91": "នេះជាអ្វីដែលខ្ញុំចង់បានពិតប្រាកដ។ ការងារអស្ចារ្យ អរគុណ!", diff --git a/web/messages/ko.json b/web/messages/ko.json index 156534fd..8d4560ee 100644 --- a/web/messages/ko.json +++ b/web/messages/ko.json @@ -575,7 +575,7 @@ "afruth": "마음에 들어요. 어제 세 개 프로젝트를 각각 여러 worktree로 병렬 작업했는데, lazygit이랑 yazi/nvim이랑 같이 쓰니까 여러 ghostty/iTerm 인스턴스를 쫓아다닐 필요 없이 평소보다 생산성이 올랐어요. tmux보다 자연스러운 느낌이에요.", "northprint": "cmux 좋아 보여서 써봤는데, 좋다", "indykish": "cmux 꽤 괜찮네요.", - "kataring": "cmux.dev로 갈아탔다", + "kataring": "cmux.com로 갈아탔다", "scottw": "정말 유용한 발견이에요. 충분히 추천할 수 없을 정도로.", "johnblythe": "주말에 깔아봤는데 좋아요. 이런 걸 기다리고 있었어요.", "bchris91": "딱 원하던 거예요. 정말 대단해요, 감사합니다!", diff --git a/web/messages/no.json b/web/messages/no.json index b289095e..310d22eb 100644 --- a/web/messages/no.json +++ b/web/messages/no.json @@ -575,7 +575,7 @@ "afruth": "Jeg liker det, brukte det i løpet av den siste dagen på tre parallelle prosjekter med flere worktrees. Å ha dette sammen med lazygit og yazi / nvim gjorde meg litt mer produktiv enn vanlig uten å måtte jakte på flere ghostty / iTerm-instanser. Føles også mer naturlig enn tmux.", "northprint": "Prøvde cmux siden det så bra ut — det er bra", "indykish": "cmux er ganske bra.", - "kataring": "Byttet til cmux.dev", + "kataring": "Byttet til cmux.com", "scottw": "Dette har vært et så nyttig funn. Kan ikke anbefale det nok.", "johnblythe": "lastet dette ned i helgen og elsket det. har ventet på noe slikt.", "bchris91": "Dette er nøyaktig det jeg har ønsket meg. Fantastisk jobb, takk!", diff --git a/web/messages/pl.json b/web/messages/pl.json index bb52ccbf..a46c137c 100644 --- a/web/messages/pl.json +++ b/web/messages/pl.json @@ -575,7 +575,7 @@ "afruth": "Podoba mi się, używałem tego ostatniego dnia na trzech równoległych projektach, każdy z kilkoma worktree'ami. Mając to w parze z lazygit i yazi / nvim byłem trochę bardziej produktywny niż zwykle, bez konieczności ścigania wielu instancji ghostty / iTerm. Czuję się też bardziej naturalnie niż tmux.", "northprint": "Wypróbowałem cmux bo wyglądał dobrze, i jest dobry", "indykish": "cmux jest całkiem niezły.", - "kataring": "Przeszedłem na cmux.dev", + "kataring": "Przeszedłem na cmux.com", "scottw": "To było takie przydatne odkrycie. Nie mogę go wystarczająco polecić.", "johnblythe": "wziąłem to w weekend i pokochałem. czekałem na coś takiego.", "bchris91": "To jest dokładnie to, czego chciałem. Świetna robota, dziękuję!", diff --git a/web/messages/pt-BR.json b/web/messages/pt-BR.json index 8b2b65f3..b5260f4b 100644 --- a/web/messages/pt-BR.json +++ b/web/messages/pt-BR.json @@ -575,7 +575,7 @@ "afruth": "Gostei, usei no último dia em três projetos paralelos, cada um com vários worktrees. Ter isso junto com lazygit e yazi / nvim me deixou um pouco mais produtivo que o normal sem precisar ficar correndo atrás de várias instâncias de ghostty / iTerm. Também parece mais natural que tmux.", "northprint": "Experimentei o cmux porque parecia bom — é bom", "indykish": "cmux é bem bom.", - "kataring": "Migrei para o cmux.dev", + "kataring": "Migrei para o cmux.com", "scottw": "Essa foi uma descoberta muito útil. Recomendo demais.", "johnblythe": "baixei no fim de semana e adorei. estava esperando algo assim.", "bchris91": "Isso é exatamente o que eu queria. Trabalho incrível, obrigado!", diff --git a/web/messages/ru.json b/web/messages/ru.json index ed2c38c2..01607654 100644 --- a/web/messages/ru.json +++ b/web/messages/ru.json @@ -575,7 +575,7 @@ "afruth": "Мне нравится, использовал целый день на трёх параллельных проектах, каждый с несколькими worktree. В связке с lazygit и yazi / nvim стал чуть продуктивнее обычного, без необходимости гоняться за несколькими экземплярами ghostty / iTerm. Также ощущается естественнее чем tmux.", "northprint": "Попробовал cmux потому что выглядел хорошо, и он хорош", "indykish": "cmux довольно хорош.", - "kataring": "Перешёл на cmux.dev", + "kataring": "Перешёл на cmux.com", "scottw": "Невероятно полезная находка. Рекомендую всем.", "johnblythe": "скачал на выходных и полюбил. ждал чего-то подобного.", "bchris91": "Это именно то, что я хотел. Потрясающая работа, спасибо!", diff --git a/web/messages/th.json b/web/messages/th.json index 7627ba68..c225b33c 100644 --- a/web/messages/th.json +++ b/web/messages/th.json @@ -571,7 +571,7 @@ "afruth": "ชอบเลย ใช้ในวันที่ผ่านมากับสามโปรเจกต์ที่ทำพร้อมกัน แต่ละโปรเจกต์มี worktree หลายอัน การมีสิ่งนี้คู่กับ lazygit และ yazi / nvim ทำให้ผมทำงานได้มากขึ้นกว่าปกติโดยไม่ต้องวิ่งไล่หลายหน้าต่าง ghostty / iTerm รู้สึกเป็นธรรมชาติกว่า tmux ด้วย", "northprint": "ลอง cmux เพราะมันดูดี — มันดีจริง", "indykish": "cmux ดีนะ", - "kataring": "ย้ายมาใช้ cmux.dev แล้ว", + "kataring": "ย้ายมาใช้ cmux.com แล้ว", "scottw": "นี่เป็นการค้นพบที่มีประโยชน์มาก แนะนำเลย", "johnblythe": "โหลดมาเมื่อสุดสัปดาห์แล้วชอบมาก รอของแบบนี้มานานแล้ว", "bchris91": "นี่คือสิ่งที่ผมต้องการเป๊ะเลย ทำได้ยอดเยี่ยม ขอบคุณ!", diff --git a/web/messages/tr.json b/web/messages/tr.json index cd6c4da0..c6eff9ff 100644 --- a/web/messages/tr.json +++ b/web/messages/tr.json @@ -575,7 +575,7 @@ "afruth": "Beğendim, son gün içinde her biri birden fazla worktree ile üç paralel projede kullandım. Bunu lazygit ve yazi / nvim ile birlikte kullanmak, birden fazla ghostty / iTerm örneğini kovalamak zorunda kalmadan normalden biraz daha üretken olmamı sağladı. tmux'tan daha doğal hissettiriyor.", "northprint": "cmux'u iyi göründüğü için denedim — gerçekten iyi", "indykish": "cmux oldukça iyi.", - "kataring": "cmux.dev'e geçtim", + "kataring": "cmux.com'e geçtim", "scottw": "Bu çok faydalı bir keşif oldu. Yeterince tavsiye edemem.", "johnblythe": "hafta sonu indirdim ve bayıldım. böyle bir şey bekliyordum.", "bchris91": "Bu tam olarak istediğim şey. Harika iş, teşekkürler!", diff --git a/web/messages/zh-CN.json b/web/messages/zh-CN.json index e970d95d..e2250795 100644 --- a/web/messages/zh-CN.json +++ b/web/messages/zh-CN.json @@ -575,7 +575,7 @@ "afruth": "很喜欢,过去一天在三个并行项目上用了,每个都有多个 worktree。配合 lazygit 和 yazi/nvim,比以前高效多了,不用在多个 Ghostty/iTerm 实例之间切换。比 tmux 也更自然。", "northprint": "试了 cmux,确实不错", "indykish": "cmux 挺好用的。", - "kataring": "换到 cmux.dev 了", + "kataring": "换到 cmux.com 了", "scottw": "非常有用的发现。强烈推荐。", "johnblythe": "周末用了,很喜欢。一直在等这样的工具。", "bchris91": "这正是我想要的。做得太好了,谢谢!", diff --git a/web/messages/zh-TW.json b/web/messages/zh-TW.json index c6136785..89fce352 100644 --- a/web/messages/zh-TW.json +++ b/web/messages/zh-TW.json @@ -575,7 +575,7 @@ "afruth": "很喜歡,過去一天在三個並行專案上用了,每個都有多個 worktree。搭配 lazygit 和 yazi/nvim,比以前高效多了,不用在多個 Ghostty/iTerm 執行個體之間切換。比 tmux 也更自然。", "northprint": "試了 cmux,確實不錯", "indykish": "cmux 蠻好用的。", - "kataring": "換到 cmux.dev 了", + "kataring": "換到 cmux.com 了", "scottw": "非常有用的發現。強烈推薦。", "johnblythe": "週末用了,很喜歡。一直在等這樣的工具。", "bchris91": "這正是我想要的。做得太好了,謝謝!", diff --git a/web/proxy.ts b/web/proxy.ts index fcf488a6..547c423b 100644 --- a/web/proxy.ts +++ b/web/proxy.ts @@ -1,7 +1,22 @@ +import { type NextRequest, NextResponse } from "next/server"; import createMiddleware from "next-intl/middleware"; import { routing } from "./i18n/routing"; -export default createMiddleware(routing); +const intlMiddleware = createMiddleware(routing); + +export default function middleware(request: NextRequest) { + const host = request.headers.get("host") ?? ""; + + // 301 redirect cmux.dev (and www.cmux.dev) to cmux.com, preserving path and query + if (host === "cmux.dev" || host === "www.cmux.dev") { + const url = new URL(request.url); + url.host = "cmux.com"; + url.protocol = "https:"; + return NextResponse.redirect(url.toString(), 301); + } + + return intlMiddleware(request); +} export const config = { matcher: ["/((?!api|_next|_vercel|.*\\..*).*)"],