LaunchFast Logo LaunchFast

Integrated Dynamic Streaming-First Sitemap

Rishi Raj Jain
// ...
import { SitemapStream, streamToPromise } from 'sitemap'
export async function GET() {
const hostname = 'https://www.launchfa.st'
const smStream = new SitemapStream({ hostname })
const slugs = [/* static slugs */]
try {
slugs.forEach((url) => {
smStream.write({ /* url config */ })
})
// ...
smStream.end()
const sitemap = await streamToPromise(smStream)
return webResponse(sitemap, 200, {
'Content-Type': 'text/xml',
})
} catch (e: any) {
// handle errors
}
}

LaunchFa.st comes with a sitemap.xml.ts Astro endpoint that creates a sitemap as a streaming response, making it available to crawlers such as Google as soon as they request the page. This was quickly done with the help of sitemap package on npm: https://npmjs.com/package/sitemap.

With Astro’s prerender configuration flag per page or endpoint, the sitemaps can also be pre-rendered and also later be statically re-generated using ISR.

Learn More Live Collaborative Editing in Astro with Cloudflare Durable Objects
Live Collaborative Editing in Astro with Cloudflare Durable Objects December 9, 2025
Bot Protection in Astro with Cloudflare Turnstile
Bot Protection in Astro with Cloudflare Turnstile December 9, 2025
Generating PDFs in Astro with Cloudflare Browser Rendering at the Edge
Generating PDFs in Astro with Cloudflare Browser Rendering at the Edge December 8, 2025