- 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>
2 KiB
2 KiB
1. Changelog Data Layer
- 1.1 Create
apps/journal/changelog/directory with a sample entry (2026-03-25.md) covering the initial launch - 1.2 Set up Vite
import.meta.globto load all.mdfiles from the changelog directory with frontmatter parsing - 1.3 Create
apps/journal/app/lib/changelog.server.tswith functions: getAllEntries(), getEntry(date) returning parsed markdown + frontmatter
2. Routes
- 2.1 Add
/changelogroute showing all entries (date, title, preview) newest-first - 2.2 Add
/changelog/:dateroute rendering full markdown entry - 2.3 Add Open Graph meta tags on entry pages (og:title, og:description, og:url)
- 2.4 Add both routes to
routes.ts
3. RSS/Atom Feed
- 3.1 Add
/changelog/feed.xmlroute that returns an Atom feed (application/atom+xml) with all entries - 3.2 Add
<link rel="alternate" type="application/atom+xml">to changelog page heads for feed auto-discovery
4. What's New Indicator
- 4.1 Add "Changelog" link to Journal nav bar
- 4.2 Track
changelog:lastSeenin localStorage, show dot when newest entry is newer - 4.3 Clear indicator when user visits /changelog
- 4.4 Add "Don't show again" option on changelog page that sets
changelog:disabledin localStorage - 4.5 Add "Show new entry notifications" toggle on changelog page to re-enable the indicator
- 4.6 Skip indicator check when
changelog:disabledis set
5. Content
- 5.1 Write initial changelog entry for the launch (features shipped in Phase 1)
- 5.2 Add markdown rendering (react-markdown or built-in) for entry content
6. Verify
- 6.1 Verify /changelog lists entries correctly
- 6.2 Verify /changelog/:date renders full entry with OG tags
- 6.3 Verify "What's New" dot appears and dismisses
- 6.6 Verify "Don't show again" disables indicator permanently
- 6.7 Verify re-enabling notifications restores indicator behavior
- 6.4 Verify /changelog/feed.xml returns valid Atom feed
- 6.5 Verify feed auto-discovery link is present in page source