← back to Govarbitrage

src/app/sitemap.ts

29 lines

import type { MetadataRoute } from "next";
import { listDigestDates } from "@/lib/digest-snapshot";
import { publicBaseUrl } from "@/lib/site";

export const dynamic = "force-dynamic";

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const base = publicBaseUrl();
  const dates = await listDigestDates();

  const staticPages: MetadataRoute.Sitemap = [
    { url: `${base}/`, changeFrequency: "daily", priority: 0.8 },
    { url: `${base}/newsletter`, changeFrequency: "weekly", priority: 1 },
    { url: `${base}/pricing`, changeFrequency: "weekly", priority: 0.7 },
    { url: `${base}/deals`, changeFrequency: "daily", priority: 0.9 },
    { url: `${base}/selling-avenues`, changeFrequency: "weekly", priority: 0.7 },
  ];

  return [
    ...staticPages,
    ...dates.map(({ date, lastModified }) => ({
      url: `${base}/deals/${date}`,
      lastModified,
      changeFrequency: "monthly" as const, // frozen snapshots — they don't change
      priority: 0.6,
    })),
  ];
}