Files
Florian ForsterandGitHub 24d0f34f39 perf: optimize docs static generation cost (#12108)
## Summary
- Switch the docs catch-all route to full static generation and prebuild
both latest and versioned docs paths.
- Prebuild OG images for all docs pages, make sitemap and LLM export
static, and remove nondeterministic sitemap timestamps.
- Reduce build-time overhead by memoizing docs sidebar trees and
skipping processed markdown generation for versioned docs.

## Testing
- `pnpm nx run @zitadel/docs:build`
- `pnpm nx run @zitadel/docs:lint`
- `pnpm nx run @zitadel/docs:check-types`
- Verified the prerender manifest contains 8,816 prerendered routes,
3,293 versioned docs routes, 4,406 OG routes, and zero revalidating docs
routes.
2026-04-27 15:34:00 +00:00

27 lines
658 B
TypeScript

import { MetadataRoute } from 'next';
import { source } from '@/lib/source';
export const revalidate = false;
export const dynamic = 'force-static';
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://zitadel.com/docs';
const docsPages = source.getPages().map((page) => ({
url: `${baseUrl}${page.url === '/' ? '' : page.url}`,
changeFrequency: 'weekly' as const,
priority: 0.8,
}));
return [
{
url: baseUrl,
changeFrequency: 'daily' as const,
priority: 1,
},
...docsPages,
].filter(
(item, index, self) => index === self.findIndex((t) => t.url === item.url),
);
}