Skip to content

Build the System · Build the Brand

How This Site Talks to LLMs

Every page here ships a markdown mirror, an llms.txt index, a served AGENTS.md catalog, and answer-ready JSON-LD. Here is the whole setup, end to end.

· 2 min read

A document with highlighted lines feeding into a node graph

Search engines read HTML. Language models would rather not. This site treats LLMs as a first-class audience: every page has a clean markdown twin, the whole site is indexed in a single crawlable file, and the content that answers questions is marked up so answer engines can lift it accurately.

None of it required custom infrastructure — it is two Astro integrations and some structured data. Here is the full setup.

The discovery layer

  1. Mirror every page as markdown. The pageMarkdown integration from @nuasite/llm-enhancements emits a .md twin of every route at build time. Append .md to any URL on this site and you get the clean-text version of that page.

  2. Publish an index at /llms.txt. The same integration writes the llms.txt file: site name, description, and a linked list of every markdown endpoint. A discovery document at /.well-known/llm.md carries the full map.

  3. Serve a route catalog at /AGENTS.md. The agentsSummary integration walks the built HTML and writes one JSON line per page — route, title, description, heading outline. The build copies it into the deploy so agents can fetch the whole site’s shape in one request.

  4. Say so in robots.txt. AI crawlers get an explicit welcome, and the file points at both the sitemap and llms.txt.

The answer layer

Discovery gets a model to the content; structured data tells it what the content claims. Every post here emits BlogPosting and BreadcrumbList JSON-LD. Posts that answer concrete questions carry a quickAnswers block in their frontmatter — the same data renders as the FAQ you see on the page and as FAQPage JSON-LD, so the visible answer and the machine-readable answer can never drift apart. Step-by-step sections like the one above optionally emit HowTo.

That single-source rule is the design principle worth stealing: never write content twice, once for humans and once for machines. Derive both from the same source, at build time, every time.

The foundation this all sits on — the design system, feature folders, and layout-owned SEO — is covered in Building This Site on a Production-Grade Foundation.

Quick answers

What is llms.txt?

A convention from llmstxt.org: a markdown file served at /llms.txt that gives AI crawlers a titled, linked index of machine-readable versions of your pages. It plays the role robots.txt and sitemap.xml play for search engines, but for language models that want clean text instead of HTML.

How do the markdown mirrors work?

At build time, every page is also emitted as plain markdown at the same URL with .md appended — this post lives at both /blog/how-this-site-talks-to-llms/ and /blog/how-this-site-talks-to-llms.md. Each HTML page carries a link rel="alternate" type="text/markdown" tag pointing at its mirror, so a crawler can find it without guessing.

Why serve AGENTS.md on a website?

AGENTS.md is a machine-readable catalog of every route: one JSON line per page with its title, description, and heading outline. An agent can fetch that single file and understand the whole site structure without scraping any HTML.


A stack of brand documents flowing into an AI chat panel

Build the System · Build the Brand

Load Your Brand Into a Claude or ChatGPT Project

The exact steps to turn brand documentation into a project your AI actually uses — Claude and ChatGPT, click by click, plus how to test that it worked.

· 5 min read

← All posts