trails/openspec/changes/changelog/proposal.md
Ullrich Schäfer 18e68bb176 Add public changelog with Atom feed and What's New indicator
- Changelog entries authored as markdown files in apps/journal/changelog/
  with YAML frontmatter, loaded via Vite import.meta.glob at build time
- /changelog list page with date, title, and preview
- /changelog/:slug detail page with full markdown rendering (react-markdown)
  and Open Graph meta tags for social sharing
- /changelog/feed.xml Atom feed with auto-discovery <link> tags
- "What's New" dot on nav bar using localStorage timestamp tracking
- Notification toggle: users can permanently disable/re-enable the indicator
- i18n strings for en and de
- Initial changelog entry covering the Phase 1 launch

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:49:52 +02:00

1.4 KiB

Why

We ship features but nobody knows. There's no record of what changed, no way to share progress, and no way for users to discover new features. A changelog serves three audiences: existing users (what's new), potential users (the project is alive and improving), and social followers (shareable updates).

What Changes

  • Add a /changelog page in the Journal showing dated entries with feature descriptions
  • Changelog entries stored as markdown files in the repo (not a database) — low friction, version controlled, works with the PR workflow
  • Each entry renders as a standalone shareable page (/changelog/2026-03-25) with Open Graph meta tags for social previews
  • A "What's New" badge/dot on the nav bar when there are entries the user hasn't seen
  • The changelog is public (no auth required) — it's part of the product's public face

Capabilities

New Capabilities

  • changelog: Public changelog with dated entries, shareable individual pages with OG tags, "what's new" indicator, RSS/Atom feed

Modified Capabilities

(None)

Impact

  • Files: New routes (/changelog, /changelog/:slug, /changelog/feed.xml), markdown entry files in apps/journal/changelog/, nav bar update
  • Dependencies: A markdown renderer (could reuse react-markdown or render at build time)
  • i18n: Changelog entries written in English (primary audience), German later if needed