Live Changelog

An auto-updating changelog page that refreshes after every commit via GitHub Actions. Parses conventional commits and displays development history.

Role: DeveloperDec 2025

A detailed timeline of development, extracted from the Git commit history. This page updates automatically after every push to the main branch.

Loading changelog...

How It Works

The changelog uses a GitHub Actions workflow that:

  1. Triggers on push — Every push to main runs the workflow
  2. Parses git history — Extracts commit hash, author, date, and message
  3. Categorizes commits — Detects conventional commit types (feat, fix, chore, etc.)
  4. Updates JSON data — Writes to data/changelog.json
  5. Commits changes — Uses [skip ci] to prevent infinite loops

Tech Stack

ComponentTechnologyPurpose
AutomationGitHub ActionsTrigger on push to main
ScriptTypeScript + tsxParse git log and generate JSON
DataJSONStore parsed commit data
RenderingNext.js Server ComponentDynamic page with locale support
i18nnext-intlLocale-aware date formatting

Conventional Commit Parsing

The script recognizes standard conventional commit prefixes:

  • feat: — New features
  • fix: — Bug fixes
  • chore: — Maintenance tasks
  • docs: — Documentation updates
  • refactor: — Code refactoring
  • style: — Styling changes
  • test: — Test updates
  • perf: — Performance improvements

Commits are automatically categorized and stats are calculated.

Loop Prevention

The GitHub Action avoids infinite loops by:

  1. Adding [skip ci] to its commit message
  2. Checking if: "!contains(github.event.head_commit.message, '[skip ci]')" in the workflow

Files

.github/workflows/update-changelog.yml  # GitHub Action
scripts/generate-changelog.ts           # Generation script
data/changelog.json                     # Generated data
lib/types/changelog.ts                  # TypeScript types
app/[locale]/changelog/page.tsx         # Page component
components/changelog-stats.tsx          # Stats component
components/changelog-table.tsx          # Table component

Outcomes

  • GitHub Actions workflow triggers on every push to main
  • Conventional commit parsing (feat, fix, chore, etc.)
  • Commits grouped by date with locale-aware formatting
  • Full i18n support across 5 locales

Links