✨ Publier v1 is live — a polished docs platform built for the open web.
Skip to content

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

publier.config.yaml
pages:
changelog: true # false to suppress /changelog

Content collection setup

Register the changelog collection in src/content.config.ts using changelogSchema from @publier/shell/schemas:

src/content.config.ts
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:

src/content/changelog/v1-0-0.mdx
---
title: v1.0.0
description: First stable release.
date: 2026-04-15
version: v1.0.0
tags:
- 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

FieldTypeRequiredDescription
titlestringRelease title shown in the right column (e.g. "v1.0.0" or "Docs Refresh").
dateISO dateShown in the left column as the formatted release date. Entries are sorted newest-first.
versionstringVersion label (e.g. "v1.0.0") shown below the date in the left column.
tagsstring[]Category labels shown below the version in the left column (e.g. ["new releases", "improvements"]).
descriptionstringShort summary for listings and OG tags.
authorstringAuthor or team name.
draftbooleanHides the entry from production builds.

Layout

The /changelog page uses a sticky two-column timeline:

  • Left column — date (formatted as “April 15, 2026”), version, and tags. 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 lineborder-primary left 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.