diff --git a/app/(public)/agent/[slug]/page.tsx b/app/(public)/agent/[slug]/page.tsx index 2977ffa..cfadf9e 100644 --- a/app/(public)/agent/[slug]/page.tsx +++ b/app/(public)/agent/[slug]/page.tsx @@ -5,6 +5,7 @@ import { PostCard } from "@/components/post/PostCard"; import { EmptyState } from "@/components/ui/EmptyState"; import { AGENTS } from "@/lib/constants/agents"; import { fetchPostsByAgent } from "@/lib/db/posts"; +import { getSiteUrl } from "@/lib/utils/urls"; export const revalidate = 60; @@ -17,8 +18,7 @@ export async function generateMetadata({ }: PageProps): Promise { const agent = AGENTS.find((a) => a.slug === params.slug); if (!agent) return { title: "Agent Not Found" }; - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const ogImageUrl = `${siteUrl}/api/og/agent/${params.slug}`; return { title: `${agent.name} Failure Cases`, diff --git a/app/(public)/case/[caseNumber]/page.tsx b/app/(public)/case/[caseNumber]/page.tsx index 823b79a..3ac1173 100644 --- a/app/(public)/case/[caseNumber]/page.tsx +++ b/app/(public)/case/[caseNumber]/page.tsx @@ -43,8 +43,7 @@ export async function generateMetadata({ const title = post ? post.title : `Case ${caseNum}`; const description = post?.outcome?.slice(0, 160) ?? `AI agent failure case file ${caseNum}`; - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const ogImageUrl = `${siteUrl}/api/og/${caseNum}`; return { @@ -99,8 +98,7 @@ export default async function CasePage({ params }: PageProps) { : `$${post.estimatedCostUsd}` : null; - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const sourceDomain = getSourceDomain(post.sourceUrl); const articleJsonLd = { "@context": "https://schema.org", diff --git a/app/(public)/tag/[slug]/page.tsx b/app/(public)/tag/[slug]/page.tsx index 27f8316..01f5dba 100644 --- a/app/(public)/tag/[slug]/page.tsx +++ b/app/(public)/tag/[slug]/page.tsx @@ -5,6 +5,7 @@ import { PostCard } from "@/components/post/PostCard"; import { EmptyState } from "@/components/ui/EmptyState"; import { TAGS } from "@/lib/constants/tags"; import { fetchPostsByTag } from "@/lib/db/posts"; +import { getSiteUrl } from "@/lib/utils/urls"; export const revalidate = 60; @@ -17,8 +18,7 @@ export async function generateMetadata({ }: PageProps): Promise { const tag = TAGS.find((t) => t.slug === params.slug); if (!tag) return { title: "Tag Not Found" }; - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const ogImageUrl = `${siteUrl}/api/og/tag/${params.slug}`; return { title: `#${tag.label} — AI Agent Failures`, diff --git a/app/feed.xml/route.ts b/app/feed.xml/route.ts index 6379464..ee7883f 100644 --- a/app/feed.xml/route.ts +++ b/app/feed.xml/route.ts @@ -1,11 +1,11 @@ import { createSupabaseAdminClient } from "@/lib/supabase/admin"; +import { getSiteUrl } from "@/lib/utils/urls"; export const dynamic = "force-dynamic"; export const revalidate = 3600; export async function GET() { - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const supabase = createSupabaseAdminClient(); const { data: posts } = await supabase diff --git a/app/robots.ts b/app/robots.ts index 6a8e6c9..8eae56d 100644 --- a/app/robots.ts +++ b/app/robots.ts @@ -1,8 +1,8 @@ import { MetadataRoute } from "next"; +import { getSiteUrl } from "@/lib/utils/urls"; export default function robots(): MetadataRoute.Robots { - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); return { rules: { userAgent: "*", diff --git a/app/sitemap.ts b/app/sitemap.ts index 929c513..fb87672 100644 --- a/app/sitemap.ts +++ b/app/sitemap.ts @@ -2,12 +2,12 @@ import { MetadataRoute } from "next"; import { createSupabaseAdminClient } from "@/lib/supabase/admin"; import { AGENTS } from "@/lib/constants/agents"; import { TAGS } from "@/lib/constants/tags"; +import { getSiteUrl } from "@/lib/utils/urls"; export const dynamic = "force-dynamic"; export default async function sitemap(): Promise { - const siteUrl = - process.env.NEXT_PUBLIC_SITE_URL ?? "https://agentpostmortem.com"; + const siteUrl = getSiteUrl(); const supabase = createSupabaseAdminClient(); const { data: posts } = await supabase