---
title: Changelog
description: What has shipped in Reed, newest first.
type: changelog
---

## 2026-08-05

**Per-page structured data.** Every page now emits schema.org JSON-LD automatically — a
`TechArticle`, or an `Article` with `datePublished` on changelog pages, plus a
`BreadcrumbList`. Generated API pages get none. The site-wide `structuredData` switch turns
it off; your own `jsonLd` blocks are unaffected either way. See
[Structured data](/docs/site/structured-data).

## 2026-08-03

**`_headers` is emitted with every build.** Static hosts commonly serve `.md` as
`application/octet-stream`, which turns the markdown mirrors into downloads. Reed now
writes the content-type rules, including a `/*/llms.txt` rule that covers sites mounted
under a `base`. See [Response headers](/docs/ship/headers).

## 2026-08-02

**Richer code presentation.** Line numbers in code blocks, and sub-navigation within long
pages.

## 2026-07-31

**Page chrome and `llms.txt` discovery.** `footer.columns` and `footer.status` join
`footer.socials`. `llms.txt` gained three discovery paths — a `<head>` link on every page,
a `robots.txt` comment, and a footer link — where previously it was emitted but referenced
by nothing.

**A `layout` field you never set no longer overrides your template.** Omitting
`layout.sidebar-width` now leaves the template's own baseline in control, so `rapide`
renders at its designed 260px and `black` at 300px instead of both being forced to 280px.
Set the field explicitly to keep the previous rendering. See
[Typography and layout](/docs/design/typography-layout).

## 2026-07-29

**Site addressing and head injection.** `site`, `base`, `head.meta`, `head.link`, `jsonLd`,
`analytics` and `redirects` all arrived together — the fields that let a build know its own
public address. Setting `site` is what enables `sitemap.xml`, `robots.txt` and absolute
URLs in `llms.txt`. `head` is data-only: there is no script surface.

## 2026-07-28

**The design system.** 37 named MDX components with enforced contracts, a four-layer CSS
cascade, and the `DS-D*` density and design diagnostics. A component outside the catalog is
now an error rather than something that renders as literal text.

**Skill packs got substantially better.** A budgeted `SKILL.md` index with navigation,
authentication and safety sections; reference entries now carry `x-internal` exclusion,
deprecation markers, a responses table, and correct `oneOf`/`anyOf`/`allOf` rendering.

## 2026-07-27

**Offline builds.** `reed prefetch` populates a pinned local dependency store, after which
`build` and `dev` complete with no network access at all. `check` was, and remains,
unconditionally offline. See [Offline builds in CI](/docs/ship/ci-offline).

**Five-language HTTP snippets** on every generated endpoint page — cURL, JavaScript fetch,
Python requests, Python httpx and Go net/http — derived from the spec and injected into a
derived copy, never into your file on disk. Your own `x-codeSamples` always win.

**Fern parity adoption**, closing the gap between what Fern's own configuration expresses
and what the importer understands.

## 2026-07-26

**MCP servers and Agent Skills** can be generated from a configured OpenAPI spec, into your
own repository. See [Derived surfaces](/docs/derived/overview).

**The Doc IR.** Every derived surface is now emitted from one intermediate representation
rather than from each other — which is also when `llms.txt` and the per-page markdown
mirrors first appeared.

## 2026-07-25

**Reed.** The project was renamed from docshine.

**The default experience.** The `mint` palette and structural sizing were rebuilt so a
scaffolded site looks finished rather than like a template awaiting configuration.

## 2026-07-24

**Multi-spec API support, and an end to silent data loss.** `api.openapi` became
`api.specs`, a named map, lifting the one-API-per-project ceiling. Diagnostics were
reclassified against a normative rule: content you declared that would never appear in the
output is now an **error**, not a warning with exit code 0. Previously, a project declaring
more than one API section had every section after the first silently discarded while the
command reported success.

**API reference pages from OpenAPI**, and the MDX component layer.

**The compiler core.** `docs.json` plus a content directory, compiled to a static site.
