diff --git a/web/app/[locale]/blog/cmux-claude-teams/page.tsx b/web/app/[locale]/blog/cmux-claude-teams/page.tsx new file mode 100644 index 00000000..25abae72 --- /dev/null +++ b/web/app/[locale]/blog/cmux-claude-teams/page.tsx @@ -0,0 +1,86 @@ +import { useTranslations } from "next-intl"; +import { getTranslations } from "next-intl/server"; +import { buildAlternates } from "../../../../i18n/seo"; +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.cmuxClaudeTeams" }); + return { + title: t("metaTitle"), + description: t("metaDescription"), + keywords: [ + "cmux", "Claude Code", "agent teams", "teammate mode", "tmux", + "terminal", "macOS", "AI coding agents", "split panes", + ], + openGraph: { + title: t("metaTitle"), + description: t("metaDescription"), + type: "article", + publishedTime: "2026-03-30T00:00:00Z", + }, + twitter: { + card: "summary_large_image", + title: t("metaTitle"), + description: t("metaDescription"), + }, + alternates: buildAlternates(locale, "/blog/cmux-claude-teams"), + }; +} + +export default function CmuxClaudeTeamsPage() { + const t = useTranslations("blog.posts.cmuxClaudeTeams"); + const tc = useTranslations("common"); + + return ( + <> +
+ + ← {tc("backToBlog")} + +
+ +

{t("title")}

+ + +