Skip to main content
Documentation

Changelog Guide

Minolith's changelog service gives you a hosted, public-facing changelog page, an embeddable widget, and an RSS feed — all managed from your dashboard or API.

What you get:

  • A hosted changelog page at changelog.minolith.io/your-project-slug
  • An embeddable JavaScript widget that shows recent changes on your site
  • An RSS feed for subscribers
  • Draft/publish workflow so you can prepare entries before they go live
  • Five themes to match your brand

Creating Entries

Entries are individual changes — a bug fix, a new feature, a breaking change. Each entry has a title, body (markdown), and category.

From the dashboard

  1. Go to your project and click Changelog in the sidebar
  2. Click Create Entry
  3. Fill in:
    • Title — what changed (e.g. "Added dark mode support")
    • Body — details, markdown supported
    • Category — choose one: feature, improvement, fix, breaking, deprecation, security, other
    • Version — optionally group this entry under a version (or leave as "Ungrouped")
  4. Click Create

The entry is created as a draft by default — it won't appear on the public page or widget until you publish it.

From the API or MCP

curl -X POST https://api.minolith.io/v1/changelog/entries \
  -H "Authorization: Bearer mlth_yourkey" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Added dark mode support",
    "body": "Users can now toggle between light and dark themes in Settings.",
    "category": "feature"
  }'

Or via MCP: call create_changelog_entry with the same fields.


Creating Versions

Versions group entries together — think of them as releases. A version might be v2.1.0, March 2026, or Sprint 14.

From the dashboard

  1. Go to Changelog → Versions (tab at the top of the Changelog page)
  2. Click Create Version
  3. Fill in:
    • Name — the version label (e.g. v2.1.0)
    • Description — optional release summary (markdown supported)
    • Release Date — optional, auto-set when you publish if left empty
  4. Click Create

Once a version exists, you can assign entries to it when creating or editing them.

From the API or MCP

curl -X POST https://api.minolith.io/v1/changelog/versions \
  -H "Authorization: Bearer mlth_yourkey" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "v2.1.0",
    "description": "Dark mode, performance improvements, and three bug fixes."
  }'

Or via MCP: call create_changelog_version.


The Draft → Published Workflow

Everything starts as a draft. Nothing is visible to the public until you explicitly publish it.

Publishing individual entries

From the dashboard, open an entry and click Publish. From the API, call POST /v1/changelog/entries/{id}/publish.

Publishing a version (and all its entries)

This is the most common workflow. When you publish a version:

  1. The version itself becomes published
  2. All draft entries grouped under that version are published automatically
  3. The release date is set to now (unless you specified one earlier)

From the dashboard, go to Versions, open the version, and click Publish. From the API, call POST /v1/changelog/versions/{id}/publish.

Unpublishing

You can unpublish individual entries or entire versions. Unpublishing a version reverts it to draft but does not unpublish its entries — you'd need to unpublish those individually if needed.

Typical workflow

  1. Create a version for your upcoming release (e.g. v2.1.0)
  2. As you complete work, create draft entries and assign them to that version
  3. When the release is ready, publish the version — all its entries go live at once

The Public Page

Your changelog is hosted at changelog.minolith.io/your-project-slug. It shows published versions and entries in reverse chronological order.

Enabling and disabling

The hosted page and RSS feed can each be toggled independently from Changelog → Settings:

  • Hosted Page — toggle the Enabled/Disabled button next to "Hosted Changelog Page". When disabled, the URL returns a 404.
  • RSS Feed — toggle the Enabled/Disabled button next to "RSS Feed". When disabled, the feed URL returns a 404.

Both are enabled by default. Disabling the hosted page does not affect the widget — they work independently.

Customising the page

In Changelog → Settings you can configure:

Setting What it does
Page Title Custom heading (defaults to your project name)
Tagline Short description shown in the header below the title (e.g. "Release notes and updates")
Custom Links Navigation links shown in the header as nofollow links. Enter as JSON: [{"label": "Website", "url": "https://example.com"}]
Theme Visual style — see below
Logo Upload a PNG, JPG, SVG, or GIF (max 2 MB) — shown in the header
Brand Colour Hex colour used by the Brand theme (e.g. #6366F1)
Custom CSS Additional CSS rules applied on top of the theme
Allowed Domains Restrict which domains can embed the widget (one per line, supports wildcards)

Themes

Each theme has a distinct layout and personality:

Theme Description
Minimal Centered single-column layout with generous whitespace — clean, blog-like reading experience
Developer Dark background with a sticky sidebar for version navigation and monospace accents
Brand Bold gradient hero header using your brand colour, with card-style version blocks
Docs Fixed sidebar with version navigation links and a topbar — documentation-style layout
Bare Semantic HTML with class names but no visual styling — designed for full customisation via Custom CSS

All themes include: logo + tagline + custom links in the header, responsive mobile layout, collapsible version sections, and category-coloured badges.

RSS Feed

An RSS feed is available at changelog.minolith.io/your-project-slug/feed.xml. Toggle it from Settings using the Enabled/Disabled button next to "RSS Feed".


The Changelog Widget

The widget is a small floating button you embed on your site. When clicked, it slides open a panel showing your latest changelog entries with an unread badge.

Embedding the widget

Add this script tag to your HTML, before the closing </body> tag:

<script src="https://api.minolith.io/widget/changelog.js"
        data-project="your-project-slug"
        data-position="bottom-right">
</script>

Replace your-project-slug with your project's slug (visible in your project settings).

Configuration

Attribute Required Default Options
data-project Yes Your project slug
data-position No bottom-right bottom-right, bottom-left, top-right, top-left

Enabling the widget

The widget must be enabled in your dashboard:

  1. Go to Changelog → Settings
  2. Toggle Widget on
  3. The widget will start loading on pages where the script is embedded

If the widget is disabled, the script loads silently without rendering anything.

How it works

  • The widget shows a floating circular button with a changelog icon
  • A red badge appears when there are unread entries (since the visitor last opened the widget)
  • Clicking the button slides open a panel showing the latest 20 entries, grouped by version
  • Each entry shows its category badge, date, title, and a truncated preview of the body
  • A "View all changes" link at the bottom opens your full hosted changelog page
  • The widget tracks the last-seen timestamp in the visitor's localStorage

Domain restrictions

By default, the widget works on any domain. To restrict which sites can embed it:

  1. Go to Changelog → Settings
  2. Enter your Allowed Domains (one per line)
  3. Wildcard subdomains are supported: *.example.com

If no domains are specified, the widget works everywhere.


Categories

Every entry must have a category. These determine the colour-coded badge shown on the public page and widget:

Category Colour When to use
feature Blue New capabilities
improvement Purple Enhancements to existing features
fix Green Bug fixes
breaking Red Changes that require user action
deprecation Amber Features being phased out
security Orange Security patches
other Grey Everything else

Working with Your Agent

Your AI agent can manage the changelog through MCP tools. Common workflows:

After completing a feature:

"Create a changelog entry for the dark mode feature we just shipped."

The agent calls create_changelog_entry with the appropriate title, body, and category.

Preparing a release:

"Create a version called v2.1.0 and publish it with all the draft entries."

The agent calls create_changelog_version, then publish_changelog_version to publish everything at once.

Reviewing what's pending:

"What changelog entries are still in draft?"

The agent calls list_changelog_entries filtered by status to show unpublished entries.


Pricing

  • Creating a changelog entry costs 3 credits ($0.03)
  • Creating a version costs 3 credits ($0.03)
  • All reads, updates, publishes, unpublishes, and deletes are free
  • The hosted page, widget, and RSS feed are included at no extra cost

Last updated: 6 Apr 2026