import { useTranslations } from "next-intl"; import { getTranslations } from "next-intl/server"; import { Link } from "../../../../i18n/navigation"; export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }) { const { locale } = await params; const t = await getTranslations({ locale, namespace: "blog.introducingCmux" }); const url = locale === "en" ? "/blog/introducing-cmux" : `/${locale}/blog/introducing-cmux`; return { title: t("metaTitle"), description: t("metaDescription"), keywords: [ "cmux", "terminal", "macOS", "Ghostty", "libghostty", "AI coding agents", "Claude Code", "vertical tabs", "split panes", "socket API", ], openGraph: { title: t("metaTitle"), description: t("metaDescription"), type: "article", publishedTime: "2026-02-12T00:00:00Z", url, }, twitter: { card: "summary", title: t("metaTitle"), description: t("metaDescription"), }, alternates: { canonical: url }, }; } export default function IntroducingCmuxPage() { const t = useTranslations("blog.posts.introducingCmux"); const tc = useTranslations("common"); return ( <>
← {tc("backToBlog")}

{t("title")}

{t("p1")}

{t("whyTitle")}

{t("whyP")}

{t("featuresTitle")}

{t("getStartedTitle")}

{t.rich("getStartedP", { link: (chunks) => {chunks}, })}

); }