Changelog page
Release history at /changelog — MDX entries in src/content/changelog/ using changelogSchema, with a sticky two-column timeline layout.
The changelog standard page renders a release history at /changelog. Each release is an MDX file in src/content/changelog/. The route is auto-injected by docsShell() — no src/pages/changelog.astro needed.
Enable / disable
pages: changelog: true # false to suppress /changelogContent collection setup
Register the changelog collection in src/content.config.ts using changelogSchema from @publier/shell/schemas:
import { defineCollection } from 'astro:content';import { contentLoader } from '@publier/shell/loaders';import { changelogSchema } from '@publier/shell/schemas';
export const collections = { changelog: defineCollection({ loader: contentLoader({ base: './src/content/changelog' }), schema: changelogSchema, }),};Writing changelog entries
Each file in src/content/changelog/ is one release entry:
---title: v1.0.0description: First stable release.date: 2026-04-15version: v1.0.0tags: - new releases - improvements---
The first stable release of our platform is live.
## New
- **Full site templates.** Docs, blog, marketing, changelog, status — one codebase.- **14 theme presets.** Typed constrained-inheritance overrides.
## Fixed
- Sidebar ordering edge case with deeply nested folders.
## Breaking
- None. (This is v1.0.0.)Frontmatter fields
| Field | Type | Required | Description |
|---|---|---|---|
title | string | ✓ | Release title shown in the right column (e.g. "v1.0.0" or "Docs Refresh"). |
date | ISO date | ✓ | Shown in the left column as the formatted release date. Entries are sorted newest-first. |
version | string | — | Version label (e.g. "v1.0.0") shown below the date in the left column. |
tags | string[] | — | Category labels shown below the version in the left column (e.g. ["new releases", "improvements"]). |
description | string | — | Short summary for listings and OG tags. |
author | string | — | Author or team name. |
draft | boolean | — | Hides the entry from production builds. |
Layout
The /changelog page uses a sticky two-column timeline:
- Left column — date (formatted as “April 15, 2026”),
version, andtags. Sticks to the top of the viewport as you scroll through a long entry, and advances to the next entry’s metadata when it comes into view. - Thick themed vertical line —
border-primaryleft border on each entry’s content block. Per-release, not continuous. - Right column — entry title and MDX body content. Constrained to a readable max-width.
Using ChangelogEntry in entry bodies
Optionally, use the ChangelogEntry component from @publier/shell to add semantic type badges inside the MDX body for individual sub-changes. The type prop accepts: 'feature', 'fix', 'breaking', 'security', 'deprecation'.
import { ChangelogEntry } from '@publier/shell/components';
<ChangelogEntry date="2026-04-15" version="v1.0.0" type="feature" title="Docs template"> Full documentation scaffolding with sidebar, TOC, search, and snippet reuse.</ChangelogEntry>
<ChangelogEntry date="2026-04-15" type="fix" title="Build flake on Linux"> Resolved intermittent failures when the build could not write to `dist/`.</ChangelogEntry>See ChangelogEntry for the full prop reference.