# 0.39.0 — 2026-07-26 — "Public History"

## Added

- **The full changelog now lives on the website.** A new `/changelogs` route exposes every per-release Markdown file as a browsable, addressable page. The sidebar groups versions by year; `/changelogs` itself redirects to the latest release, so a single link stays current. One URL per release — `/changelogs/v0.37.0` — opens the notes that produced that version. `crawlLinks` prerenders the whole tree on every build, so the deployed site is fully static and offline-capable.
- **A new `scripts/build-changelogs.mjs` script** parses every `changelogs/vX.Y.Z.md`, runs the body through the same `remark + rehype-shiki` pipeline as the docs, and emits `public/changelogs/index.json` plus one HTML fragment per release. Wired into `predev` / `prebuild`; `pnpm changelogs` rebuilds it alone. Adding a release is one step: drop a new `vX.Y.Z.md`, everything else follows.
- **A GitHub stars badge in the site header.** `★ 1.2k` in a pill that lives next to the GitHub icon — the whole pill is one click target that opens the repo. Fetches `api.github.com/repos/vava-nessa/kandown` from the browser with a `localStorage` cache and 24h TTL: one anonymous request per visitor per day, no build-time coupling.
- **The About section of the running app picks up the same count** via a shared `useGithubStars` hook and `formatStars` formatter, so the badge in the app and the badge in the site can never disagree by more than 24h.
- **The About section now links to the changelog.** A discreet `Read changelog for vX.Y.Z →` line sits under the version badge and opens `https://kandown.dev/changelogs/v${currentVersion}` in a new tab; a `Changelog` entry in the existing Links list opens the index. The version badge used to be a dead label — now it is the entry point to the notes that produced it.

## Changed

- **The site footer grows two links.** A `Changelog` entry in the `Project` column for discoverability, and a `Changelog · v0.X.Y` line on the MIT bar for the curious reader who reaches the bottom of every page. Both point at the prerendered pages above.
- **`src/lib/version.ts` is unchanged**, but two new consumers now read it: the changelog link in the About card (URL templating) and the pinned `LATEST_VERSION` in the footer constant. Update one on release, both update.

## Notes

- `failOnError` stays at the project default (`false`); the changelog build is the upstream safety net, not the prerender.
- The demo build routes both About-card links to the matching GitHub release instead (guarded by `__KANDOWN_DEMO_BUILD__`), so the demo never links to a 404.
- Helpers are duplicated across the two workspaces on purpose: each is ~40 lines, the marketing site and the Kandown CLI are independent pnpm workspaces, and a shared package would cost more than it saves.