0.1.0
BREAKING CHANGES1
- every shadcn component the layer ships is now
Ui-prefixed —<UiButton>,<UiSelectTrigger>,<UiTextarea>. A consumer overriding or calling one by its bare name has to rename it.
Features127
- add code blocks, package-manager tabs, alerts and a file tree (6e4e94e)
- add previous/next, a breadcrumb and an active table of contents (e9e5430)
- add the documentation shell — header, navigation, page and TOC (30c7fe5)
- add the Markdown components a reference page needs (6edd5ec)
- add the select and textarea the request client types into (79ff441)
- add the shadcn components the theme is built from (0a66f85)
- answer one operation of the site's own document (3b46c84)
- ask whether a page helped, and store nothing (67b7136)
- build the documentation layer, from sources to theme (#4) (83ade55)
- build the preview block like the cards beside it (1165ae2)
- build the reference pages from ruled rows rather than cards (c6e69da)
- build the sidebar from the default language's tree (282d8a2)
- bundle the icons a docs tree names in its frontmatter (ef42d3e)
- carry a version's lifecycle, origin and newest tag through the source list (e862ba3)
- colour and filter a release history by the kinds of change it carries (1310793)
- complete the page metadata the SEO modules leave open (3740212)
- confirm a copy with a toast (cdc3087)
- date a release page and link the diff it was cut from (1550d3b)
- deploy the documentation site to cloudflare workers (a227772)
- describe every page to crawlers, models and social cards (848ffd2)
- draw a method as a toned badge rather than a pill of its own (458ecd5)
- draw a page's provenance from one spacing rule (8a52648)
- draw every mark from the collection its domain calls for (6d44a08)
- draw the devtools panels from plain data (c119015)
- dress the preview block and the landing frame like windows (9e36584)
- drive the navbar, landing and footer from app.config (0fa43cb)
- drop the sidebar from a section that has one page (6da94cc)
- drop the surface under a preview example (973cbe1)
- fall back to the nearest language a page exists in (8ff3639)
- fill a try-it credential field from the document's own example (67c8bfe)
- fold the header into the sheet a step at a time as the screen narrows (4b9eccb)
- follow a code box's height instead of switching it (67bcf1f)
- generate collections from a compact source list (acda174)
- give a generated page a contents column and the header a written page has (31919fc)
- give a generated section a navbar entry and a layout slot (85fed01), closes #9
- give a group of code blocks one tab bar and one copy button (753bd57)
- give a request body a form and a JSON editor (2d3f78c)
- give each documentation section its own sidebar (0152dca)
- give each section an overview, and fix the section row on mobile (d8a7fd9)
- give files and code blocks an icon for their type (93a62af)
- give headings anchors and calm the prose down (96bffa0)
- give the devtools tab a panel per question (b60327d)
- give the footer columns and a legal row (285a89b)
- give the sample clients a row of their own (d6b72dc)
- give the sheet's navigation the sections as its own children (3052e3b)
- give the toasts their four levels and status colours (2b327e0)
- group search hits by section, and give the empty dialog something (db217db)
- hand a page to a model in one click (1d72e71)
- highlight every language shiki ships, aliases included (91aa656)
- highlight the package-manager commands (b9de4b7)
- keep partials and drafts out of the page collections (3c42609)
- lay the docs out the way nuxt.com does (b57ca68)
- let a layout say there is no room for a contents column (453cd41)
- let a preview example stand as the page renders it (5a466dd)
- let a section stand in with an icon for pages that carry none (4238b52)
- let a section type read the options its own declaration turned (cbda0ad), closes #6
- let a site put its own wordmark in the header and footer (cd48807)
- let a source claim its own url segment (f1cf2ba)
- let a source name the version it is (5d6fb5b)
- let the version read as the switcher it is (569a667)
- let the version render as a control rather than only a badge (29c4615)
- localise the documentation and clear the layer of duxt's own content (#7) (ba493c4)
- make every clickable surface react to the pointer (e7eda61)
- make sidebar groups collapsible and tighten the tree (157ad4a)
- make the devtools tab readable at a glance (42dd32b)
- make the javascript samples typescript, with the response type (545ba73)
- move through a generated section with the pagination links (1966b3a)
- move through the docs by keyboard (81671ac)
- name the layer and its version in the footer (37690fb)
- offer the request in twelve clients, grouped by language (7ae4c7b)
- one version control, beside the search, in a header that holds still (057a8ef)
- open the api overview with the document in figures (e471801)
- playground: read two git sources with Content's own support (1f9c4be)
- prefetch the framed document while the browser is idle (d364026)
- prefix the layer's shadcn components with Ui (bd0bbc4)
- publish a changelog feed (faf246e)
- publish a source's non-Markdown artefacts as generated sections (1442c3e), closes #9
- publish an OpenAPI document as generated reference pages (78f77e5), closes #3
- publish one artefact at several versions (31f80ad)
- publish the demo api as a source of its own (430779a)
- publish the report as a command (4002114)
- put Resources back in the navbar and fill the footer out (57b0a1b)
- quieten the callouts down (1ee6110)
- read a remote source's history instead of its shallow clone (529a08f)
- read an OpenAPI document into one model both dialects share (d2b4e14), closes #3
- rebuild the landing page around a live preview (7f46f1d)
- record which declaration produced a generated section's collection (fb35b85), closes #9
- redirect a page that moved (49b3733)
- reduce the release history to four figures and a line per release (987a351)
- reject a default locale the collections do not share (dfa63b5)
- remember a reader's choice in one place (8dedb4d)
- remember and colour the request sample (96bd0e1)
- remember which package manager the reader picked (7f6933c)
- render a changelog as a filterable timeline, or as the file it was written as (5568071), closes #6
- render the API reference in a layout and a client of its own (e9d8525), closes #3
- render the devtools panels into the documentation (6fdcbc2)
- replace the hand-written prose with shadcn/typeset (cc0b15a)
- report a command a package manager cannot express (29e35c5)
- report what each language carries and what has stood still (19cc17e)
- report what reading an artefact said about it (3777332)
- report what the build would otherwise swallow (f29c228)
- run the development site on two repositories and two refs (8924ad2)
- say when a page last changed and who wrote it (66e105d)
- search every source at once (5499107)
- search the documentation with ⌘K (6c5dd3e)
- serve a real MCP server instead of a JSON endpoint (afde35f)
- serve llms.txt from the collection (42300ef)
- serve translated pages as collections of their own (6a73f4b)
- set a release group as a label over a compact list (0f3ee01)
- set the request samples under a heading rather than in a second card (255c979)
- set up shadcn-vue, Tailwind and the base theme (0020313)
- ship callout and steps components for Markdown (319267d)
- show a component's source beside the component (7d74227)
- show a feature as a band with the thing itself running in it (01a9091)
- show the resolved sources in a devtools tab (86c138d)
- show the samples an api description writes for itself (7c36e7d)
- show the section row of the area the reader is in (cec70c2)
- show the shape of a page while the preview frame boots (dab2fa2)
- speak the reader's language, and configure duxt in one file (67e69a3)
- split the landing page from the docs view (fe77698)
- suggest the nearest page on a 404 (d0149ff)
- switch syntax highlighting on (4a7a1f4)
- take the SEO stack from the Nuxt SEO bundle (c99e4e7)
- tell the reader which version of the documentation they are in (a435c8a)
- tint a badge instead of filling it (3dae4c9)
- translate a written command into every manager's own spelling (ad257b9)
- wire the theme to the generated collections (0991753)
Bug Fixes125
- answer with null where there is nothing to highlight (573e2e7)
- bring the pointer cursor back (3fd6a3b)
- carry the sections into the mobile navigation (434a670)
- centre a method chip's glyphs in the chip (597d68f)
- centre the footer's powered-by line (690f7ee)
- check the origin before a framed panel takes a theme from a message (9d7328c)
- close the two paths CodeQL found into git and the regex engine (1e08d48)
- colour the code this site builds at runtime (552c9a9)
- draw the section row only where one of its sections is current (3b3079f)
- drop a link to a heading anchor that does not exist (b0edb32)
- drop allow-same-origin from the devtools preview frame (69ebd86)
- drop the changelog's own title, not every heading beside it (e9e6e71), closes #6
- drop the product name from the devtools preview label (8ac6c11)
- drop the second icon library out of the generated components (6a6dc19)
- drop the unreachable heading-anchor label (3d79f34)
- emit a devtools tag class without a trailing space (d637ffe)
- find the section a page sits in in either navbar row (d3ad22d)
- follow the development site's own URLs after the source went (6cf4598)
- give a body a direction, so read-only and write-only mean something (62c9a30)
- give a generated section one navbar entry, for the version being read (9827f4b), closes #9
- give a heading that is itself a link an anchor of its own (7ecc808)
- give a language tab the mark of its language (5ffe1cf)
- give a page outside every section one branch, not the whole tree (f9b3c3c)
- give a preview one surface for both tabs (801df30)
- give dropdown entries a hover state (c2aef15)
- give every declared section its own navbar entry, on every version (c584bfd), closes #9
- give every landmark a name and the keyboard a way in (3a0602c)
- give the brand icons a colour per theme (aad4649)
- give the d1 binding the database it names (7434ce0)
- give the devtools panel the walk signature it now takes (18d8d39)
- give the docs tree one navigation landmark, not three (c1ea266)
- give the menu and command items a pointer to click with (809f37e)
- give the navbar's docs entry a destination (886e4f7)
- give the sheet's close button something to press (3df5b19)
- give the toasts their stylesheet (51a50e1)
- grow the try-it cards downwards rather than from their middle (18fcc33)
- hold the footer at the bottom of the viewport, dvh not vh (617a56b)
- keep a long external-docs description from filling the overview row (bf3ea5f)
- keep a preview's source on the code surface (510c0ef)
- keep a reference out of the documentation's version switcher (90b64d4)
- keep dots in version URLs, and stop showing two version systems (b8395c6)
- keep Node APIs out of the browser, and find a prefixed section (c69dd78)
- keep password managers out of the try-it client (d48929a)
- keep prev/next inside its section and open the group the route lands in (2c38508)
- keep reka-ui to one copy so SSR survives a production build (0c9902d)
- keep the answer panel in the tree while a request is sent (3dd8088)
- keep the approximate search across every source (36069c3)
- keep the devtools fixtures out of a consumer's index (b72af9d)
- keep the reference layout a column, but a wider one (fe089c2)
- keep the section row still and opaque while the page scrolls (e0dde2e)
- keep the sidebar on the source the route is in (b58c4b0)
- keep the sticky try-it panel clear of the header (34e6f72)
- keep the table of contents on the heading being read (752a45e)
- lay the callout out explicitly and colour the manager tabs (c757cd0)
- leave a generated page's heading to the shell that draws it (67f0782)
- let a per-version section say which version is the default (4ce4dbc)
- let a tab strip hold tabs and nothing else (96ad7ca)
- let frontmatter icons reach the sidebar (fea1be7)
- let only a URL reach git ls-remote (f4f3de2)
- let the highlighted code actually reach the page (308b4f3)
- let the try-it panel scroll itself (60e0ba7)
- let wide blocks scroll instead of the page (d149d70)
- link a tagged version to its source, not to an edit form (d59a192)
- look for docs at the repository root, not the site root (6f4309f)
- make a documentation heading its own anchor link (d1531a1)
- make a search result one line, and lose the second close button (e4eb96d)
- make the brand tokens outrank the layer's on specificity (c5846e7)
- make the section tabs and manager tabs behave like tabs (901c218)
- mark the docs entry active on every section (94a3407)
- match the longest version prefix, not the first (72e2578)
- name a sidebar folder after its index page, not its directory (cff48f0)
- name an option the changelog type does not read (b8554ab), closes #6
- name the devtools panel without describing the tab (f915dc0)
- name the mcp server from the site's own title (6160133)
- open content's cache database in wal mode (9f45be6)
- pass a named slot always and put the condition inside it (9380ec9)
- playground: drop the SQLite driver for Node's built-in one (b603667)
- print the landing preview's address as the address bar does (fd31099)
- put the palette in a cascade layer so an override cannot lose a race (48dc902)
- put the steps component's markers back on their rail (270094d)
- quote the frontmatter values that carry a colon (6896470)
- raise three palette pairs to AA (5c94b5d)
- read a percent-encoded anchor as the heading it names (044cd10)
- read a repository's history once instead of once per page (3e42214)
- read a translated partial instead of the original (4004037)
- rebuild search on Content's own ranked index (4e9acfc)
- reject a browser fallback locale the site does not serve (aad9986)
- render icons as svg and rebuild the package-manager block (b9674c7)
- resolve a link and its anchor in the linking page's own language (e0f72df)
- resolve a text key that carries a structure (f50087b)
- say a cookie cannot be set from a page instead of dropping it silently (ebcd315), closes #3
- set a generated section's layout through the untyped signature (e6c33c5), closes #3
- settle the package manager before the first frame (1139664)
- settle the package manager on the server, not after hydration (6789b2c)
- share one navigation query instead of five colliding ones (a2b302b)
- ship the devtools panel previews from the layer (849e3b2)
- show generated page descriptions without repeating the lead (68542bf)
- show the breadcrumb on a section root too (48035c2)
- start the landing preview loading before it is in view (4adec96)
- state the site's own origin so a rendered page is not canonical to localhost (dda0b57)
- stop a consumer's config lists being appended to the layer's (4777575)
- stop creating the content database before Content does (bbd4ad2)
- stop oxfmt from rewriting MDC blocks in docs/ (ea361d7)
- stop registering the layer's server routes twice (19cfd80)
- stop shipping duxt's own content as layer defaults (c40677b)
- stop shipping duxt's own docs structure as a layer default (74fb76a)
- stop the active sidebar entry reflowing onto a second line (86b653e)
- stop the body editor demanding a field the server assigns (43bbfe6)
- stop the breadcrumb listing a section twice (25ce246)
- stop the footer repeating the navbar's icon links (c6c8969)
- stop the layer shipping kirchDev's own links to every consumer (adb509d)
- stop the navbar default forcing consumers to rewrite it (112a112)
- stop the prose rules bleeding into the file tree and callouts (b3abf57)
- stop the prose rules outranking the components inside them (7b1b1d7)
- stop the reference shell hanging over the site's own edge (831747b)
- stop the version and locale menus filling the window (96728ee)
- take the value away from the rule painting behind code tokens (682a4f4)
- tell an untranslated page from a language just switched (bf599de)
- tell the browser which theme the page is in (4bffd68)
- tell two languages apart when picking a collection (1f36b85)
- tell two parameters that share a name in different places apart (10c3ef1), closes #3
- translate the copy confirmation (9484460)
- unwrap the extra level a version prefix adds to the tree (8137bb0)
- wait for content's parse cache instead of failing beside it (7f72afd)
- write the report's group separator as an escape, not a raw NUL (608ceef)
Miscellaneous Chores1
- release 0.1.0 (27ae555)
Edit this page
Released on 10 Sept 2026