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 Cloudflare D1 Database Support Now Available in LaunchFast Starter Kits
Cloudflare D1 Database Support Now Available in LaunchFast Starter Kits July 3, 2025
Mailgun Email Support Now Available in LaunchFast Starter Kits
Mailgun Email Support Now Available in LaunchFast Starter Kits June 7, 2025
Query Cloud Firestore with Astro on Cloudflare Workers
Query Cloud Firestore with Astro on Cloudflare Workers April 25, 2025