pages/blog

Purpose

Blog index, dynamic post pages, and RSS feed at /blog. All three files are prerendered (export const prerender = true) and read from the blog Astro content collection in src/content/blog/.

Key Files

FileDescription
index.astro/blog - lists all published posts from the blog content collection; uses getPublishedPosts + readingTime + formatDate helpers; includes RSS autodiscovery link
[...slug].astro/blog/<slug> - renders a single post via BlogLayout; uses getStaticPaths to enumerate all published slugs; includes two relatedPosts (adjacent in list) passed to the layout
rss.xml.ts/blog/rss.xml - RSS 2.0 feed via @astrojs/rss; enumerates all published posts with title, description, pubDate, and absolute link

For AI Agents

Working In This Directory

Tags are not a public route

Blog post tags (src/content.config.ts:tags) are a draft-time signal used by the milepost-blog-post Claude Skill to suggest internal links. They are NOT an SEO surface.

Do NOT add a tags/[tag].astro or tags/index.astro route. A tag-listing route on a small blog generates dozens of low-content pages that Google penalizes; the trade-off was deliberated and rejected in .omc/specs/deep-interview-milepost-blog-post-skill.md (AC9) and the consensus plan’s Option Table 1A.

If SEO via tag pages becomes desirable later, revisit AC9 and the ADR Consequences in .omc/plans/milepost-blog-post-skill.md.

Dependencies

Internal

External