Skip to content

publish a changelog entry

A changelog entry is a public post-mortem of what shipped. Visitors see them at /b/<board-slug>/changelog. Subscribers get an email.

Entries have one of two statuses:

  • draft: saved, not visible to anyone but admins.
  • published: visible on the public changelog and to rss readers.

You can move from draft to published and back. Draft works as scratch space.

  • title: required, up to 200 characters.
  • body: rich text via tiptap. Up to 50 000 characters of plain text equivalent.
  • version (optional): a tag like v1.4.0 or 2026.05. Up to 40 characters. Useful for semver products.
  • published at: when published, this defaults to “now”. You can backdate or schedule by editing the timestamp.
  • slug: auto-derived from the title, unique within the board.
  • images: drag and drop into the editor. Spirby presigns uploads to Cloudflare R2. Supported types: png, jpeg, webp, gif.

You can link an entry to up to 200 posts on the same board. The link list is what powers two behaviors:

  1. auto-shipped flip. When you publish an entry, every post linked to it moves to shipped status (unless it is already shipped or merged). The author gets the standard status-change notification.
  2. shipped-in badge. On a post page, the most recent published entry that links the post shows up as a “shipped in <version or title>” badge.

Click publish and pick a published_at timestamp. Spirby:

  1. Flips the entry’s status to published and stores the timestamp.
  2. Flips every linked post to shipped.
  3. Enqueues an email broadcast to confirmed subscribers.
  4. Updates the rss feed at /b/<board-slug>/changelog/rss.xml.

Unpublishing flips the entry back to draft. The email broadcast is cancelled if it has not started; if it has already gone out, no recall is possible. Write a follow-up entry instead.