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

ChangelogEntry

Single changelog entry with date, optional version, optional tags, semantic type badge, and body slot — matches the two-column sticky layout of the /changelog page.

The ChangelogEntry component from @publier/shell renders one entry in a changelog feed. Use it inside MDX release notes to document individual sub-changes with semantic type badges. It mirrors the two-column sticky layout used by the auto-injected /changelog listing page.

Usage

import { ChangelogEntry } from '@publier/shell/components';
<ChangelogEntry
date="2026-04-15"
version="v1.0.0"
type="feature"
title="Publier v1 is out"
>
Full rewrite on Astro 6. See the [getting-started guide](/docs/get-started/introduction).
</ChangelogEntry>
<ChangelogEntry date="2026-03-20" type="fix" title="Fixed build flake on Linux">
Resolved intermittent failures when the build could not write to `dist/`.
</ChangelogEntry>

Stack entries chronologically inside a <section> or <ol> — each one renders as its own semantic <article>.

Props

PropTypeDefaultDescription
datestringrequiredISO date (YYYY-MM-DD) of the change. Shown in the left column.
titlestringrequiredShort title describing the change. Shown in the right column.
versionstringundefinedOptional version label (e.g. "v1.2.3"). Shown below the date.
tagsstring[]undefinedCategory labels shown below the version (e.g. ["improvements"]).
type'feature' | 'fix' | 'breaking' | 'security' | 'deprecation'undefinedSemantic category — rendered as a colored badge in the left column. Takes precedence over tags when both are provided.

Body content is passed as children and rendered inside the right column.

Behaviour

  • Renders as a semantic <article> element — stacks naturally inside an <ol> or <ul>.
  • The type badge is only rendered when type is provided, and uses a theme-aware color per category.
  • Version and tags are only rendered when provided.
  • Left column metadata (date, version, tags/badge) is visually separated from the content by a thick themed left border.