# SEO, Sitemap, and RSS — BrandApp Playground

> Turn CMS posts into a Next.js sitemap, an RSS feed, and per-post metadata with the SDK helpers.

- Canonical page: https://brandapp-playground.vercel.app/cms/seo
- Markdown: https://brandapp-playground.vercel.app/cms/seo.md
- SDK module: `@reopt-ai/brandapp-sdk/cms`

## Helpers

- `toSitemapItems(records, { siteUrl, basePath })` — feeds `app/sitemap.ts` directly; the
  returned items are structurally compatible with `MetadataRoute.Sitemap`.
- `toRssItems(records, ...)` — feeds a route handler that emits the feed XML.
- `toMetadata(post)` — returns a Next.js `Metadata` object for `generateMetadata`.

## Live endpoints on this deployment

- [`/sitemap.xml`](/sitemap.xml)
- [`/rss.xml`](/rss.xml)
- [`/robots.txt`](/robots.txt)

The sitemap paginates through every published post and falls back to the static route
inventory if the connected BrandApp's CMS is unavailable, so search engines never receive
an empty document.

## Related

- [Posts](https://brandapp-playground.vercel.app/cms/posts.md)
- [CMS Overview](https://brandapp-playground.vercel.app/cms.md)

---

Index of every document: https://brandapp-playground.vercel.app/llms.txt
Single-file copy: https://brandapp-playground.vercel.app/llms-full.txt
HTTP API description: https://brandapp-playground.vercel.app/openapi.json
