Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A Hugo theme for publishing a changelog with experimental, deprecated, and released entries in a two-column, dark-mode layout.
Hugo Changelog Theme is an open-source Hugo theme for publishing a product changelog with a structured workflow that separates unreleased, deprecated, and released entries. It runs on the Hugo static site generator and turns Markdown files placed in specific content folders into a versioned changelog website with dark mode and pagination.
Hugo Changelog Theme is a Hugo theme that converts Markdown changelog entries into a clean, two-column static website. It takes content from three folders — experimental/, deprecated/, and released/ — and renders unreleased changes at the top, deprecations in a dropdown, and released entries sorted by weight (which is displayed as the version). The theme is maintained by jsnjack and is available on GitHub for free.
static/ folder, so you can extend the theme without editing its templates.Makefile provides commands like make change, make deprecation, make release, and make serve_changelog; release.py moves experimental entries into released and generates a release commit; a .githooks/post-merge hook checks that the experimental folder is empty when merging into the stable branch.make change to generate a uniquely named Markdown file in the experimental folder, avoiding merge conflicts when several developers add changes.make deprecation to create a Markdown file in the deprecated folder; deprecated entries appear in a dropdown on the first page and must be removed manually when the feature reaches end of life.make serve_changelog to preview locally, then make release to move all experimental files to the released folder, assign a version number, and create a release commit.make change to create a Markdown file in site/changelog/content/experimental/.make deprecation creates a file in the deprecated/ folder.make serve_changelog runs a local Hugo server for preview.make release moves all experimental Markdown files into released/, assigns a version, and generates a release commit.python-frontmatter installed separately.The theme is free and open source; you clone it from the repository and use it in your own Hugo site without paying a license fee.
Run make change in the theme's directory. It creates a Markdown file with a random name in site/changelog/content/experimental/, which you then edit with the change description. The entry appears in the experimental section on the first page.
The theme provides a shortcode that accepts eight tag types: added, changed, fixed, deprecated, removed, performance, security, and self-hosted. Each renders as a label before the entry text.
Yes. The theme automatically detects the system color scheme preference and switches between dark and light modes accordingly. There is no manual toggle documented in the theme's settings.
Run make deprecation to create a Markdown file in site/changelog/content/deprecated/. Deprecated entries appear in a dropdown section on the first page. When the feature reaches its end of life, you must delete the corresponding file manually.
Run make release. This moves all Markdown files from the experimental/ folder to the released/ folder, assigns a version number based on weight, and generates a release commit. The post-merge hook then checks that the experimental folder is empty when you merge the working branch into the stable branch.