From cfcc72d8405d36b3a03e274941b4930424acfd15 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Sun, 22 Mar 2026 17:54:38 -0400 Subject: [PATCH] generate blog entries in sitemap dynamically, skip drafts --- apps/web/src/app/sitemap.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/apps/web/src/app/sitemap.ts b/apps/web/src/app/sitemap.ts index 421145d..b8bc8b8 100644 --- a/apps/web/src/app/sitemap.ts +++ b/apps/web/src/app/sitemap.ts @@ -1,8 +1,10 @@ import type { MetadataRoute } from "next"; +import { getAllPosts } from "@/lib/blog"; export default function sitemap(): MetadataRoute.Sitemap { const base = "https://such.software"; - return [ + + const staticPages: MetadataRoute.Sitemap = [ { url: base, lastModified: new Date(), changeFrequency: "weekly", priority: 1.0 }, { url: `${base}/products`, lastModified: new Date(), changeFrequency: "weekly", priority: 0.9 }, { url: `${base}/products/neroswap`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.8 }, @@ -16,11 +18,14 @@ export default function sitemap(): MetadataRoute.Sitemap { { url: `${base}/about`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 }, { url: `${base}/support`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.5 }, { url: `${base}/blog`, lastModified: new Date(), changeFrequency: "weekly", priority: 0.8 }, - { url: `${base}/blog/neroswap-aggregator`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 }, - { url: `${base}/blog/crypto-checkout-infrastructure`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 }, - { url: `${base}/blog/bauhaus-echo-launch`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.6 }, - { url: `${base}/blog/smirk-wallet-release`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.6 }, - { url: `${base}/blog/website-relaunch-2026`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.5 }, - { url: `${base}/blog/wownero-moon-launch-release`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.6 }, ]; + + const blogPosts: MetadataRoute.Sitemap = getAllPosts().map((post) => ({ + url: `${base}/blog/${post.slug}`, + lastModified: post.date ? new Date(post.date + "T12:00:00") : new Date(), + changeFrequency: "monthly", + priority: 0.6, + })); + + return [...staticPages, ...blogPosts]; }