Back to Colophon
Back to Colophon

Added build-time llms.txt generation, a shared metadata...

Added build-time llms.txt generation, a shared metadata resolver for consistent page titles and descriptions, reusable JSON-LD schema components, and a validation script that...

Added build-time llms.txt generation, a shared metadata resolver for consistent page titles and descriptions, reusable JSON-LD schema components, and a validation script that checks SEO health across the built sitemap.

#seo #schema #metadata #llms #infrastructure

llms.txt generation#

Two new build-time endpoints generate machine-readable site inventories. The short version (/llms.txt) lists start-here pages, top writing, and machine-readable surfaces. The full version (/llms-full.txt) adds every field note, writing post, project, and colophon entry. Both pull from the actual content collections, so they stay current automatically.

This is a step past Markdown for Agents, which gives agents clean markdown per-page. The llms.txt files give them a map of the whole site upfront.

Shared metadata resolver#

A new metadata resolver handles page titles, meta descriptions, and OG images through a cascading priority system: explicit SEO override, then description field, then body text. It’s applied to all detail page types (blog, projects, field notes, colophon).

The main fix: short-form pages like field notes and colophon entries were falling back to the global site description because they don’t always have their own description field. Now they get a description extracted from their content instead.

JSON-LD schema components#

Two reusable schema components so structured data isn’t ad hoc. Each route now gets the right type:

  • Homepage: WebSite
  • /about: ProfilePage + Person
  • /activity: WebPage
  • Listing pages: CollectionPage
  • Blog posts: BlogPosting
  • Projects: CreativeWork

Also cleaned up a dead SearchAction from the homepage schema that pointed at a search page that doesn’t exist.

SEO validation#

The build-time SEO validator now crawls the sitemap and checks every page for: required meta tags, JSON-LD presence, route-specific schema types, SearchAction validity, default-description detection on detail pages, and llms.txt file integrity. Regressions get caught before deploy.

Added build-time llms.txt generation, a shared metadata resolver for consistent page titles and descriptions, reusable JSON-LD schema components, and a validation script that checks SEO health across the built sitemap.