How I’ve built the Changelog on my site. The Changelog is a day-by-day list of changes to the site. It is something I manually update and includes many, but not all, changes. I tend to call out content changes to individual blog posts, but typically avoid listing out each and every little modification to other bits of the site’s code. It serves as an easy way for me to capture updates to the site that wouldn’t otherwise be explicitly mentioned.

The changelog is built using two separate constructs, a collection of weekly changes files and the changelog file itself. An example of the changes file front matter and markdown is shown below.


---
layout: page
title: Weekly Changes 3/17/25-3/23/25
description: Changes made March 17, 2025 - March 23, 2025
date: 2025-03-17 00:00:00 -0500
updated: 2025-03-17 23:54:00 -0400
---

###### March 17, 2025
- List
- of
- changes
- here

To pull in each of the weekly changes files, the following Liquid code is employed. Pretty simple actually!


{% assign changes = site.changes | sort: "date" | reverse %}
{% assign latest = changes | first %}

<h1>Changelog</h1>
Last Update: <i>{{latest.updated | date: '%B %-d, %Y | %l:%M %p %:z'}}</i>

<hr/>

{% for change in paginator.posts %}
{{ change.content }}
{% endfor %}

That’s it!

In the future, It’d be nice if this log could be dynamically populated with things like net new content. Content changes to existing, posts would either still need to be manually updated here, or maybe even exist in per-post change logs.