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.gpl" }); return { title: t("metaTitle"), description: t("metaDescription"), keywords: [ "cmux", "GPL", "AGPL", "open source", "license", "terminal", "macOS", "copyleft", ], 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/gpl"), }; } export default function GplPage() { const t = useTranslations("blog.posts.gpl"); const tc = useTranslations("common"); return ( <>
← {tc("backToBlog")}

{t("title")}

{t("p1")}

); }