# MDX blog solution docs

- [MDX in the App Router without shipping a compiler](https://agenticboilerplate.com/cookbook/blog-mdx/mdx-without-a-runtime): next-mdx-remote compiles every post on every request. Compile at build time with @next/mdx instead, and keep frontmatter with gray-matter.
- [OG images that render your font, not Noto](https://agenticboilerplate.com/cookbook/blog-mdx/og-images-that-render-your-font): ImageResponse has no system fonts and silently falls back. Load a static TTF from disk, and know why woff2 and variable fonts fail.
- [An RSS feed that actually validates](https://agenticboilerplate.com/cookbook/blog-mdx/rss-that-validates): Unescaped ampersands, ISO dates and a missing atom:link are why feed readers reject your feed. Generate it as a static route with escaped text.
- [A sitemap and canonical URLs that do not fight each other](https://agenticboilerplate.com/cookbook/blog-mdx/sitemap-and-canonical-urls): lastModified from new Date() teaches crawlers to ignore your dates, and a canonical built from request headers points at your preview deploys.
- [Syntax highlighting without a 300kb bundle](https://agenticboilerplate.com/cookbook/blog-mdx/syntax-highlighting-without-a-huge-bundle): Prism and highlight.js in a client component ship a parser to every reader. Highlight at build time with a rehype plugin and ship CSS instead.

---

Agentic Boilerplate: A Next.js repo your agent already knows. $99 once. Lifetime access and updates.

- Site map for agents: https://agenticboilerplate.com/llms.txt
- Public API: https://agenticboilerplate.com/openapi.json
- Contact: agenticstudio@gmail.com
