Changelog Page Design
Changelog Page Design
Date: 2026-02-21 Status: Approved
Goal
Ship a public /changelog page on the Flowershow website that makes product progress visible and easy to scan, while staying fully content-driven and built with Flowershow-native features.
Scope
- Use local markdown content files in
content/flowershow-app/changelog/ - Build the index page as
content/flowershow-app/changelog.mdx - Use Obsidian Bases for the changelog listing/query
- Add
/changelogto top nav and footer product links - Seed the page with initial entries so it is immediately useful
Out of scope (for this iteration):
- Auto-generation from GitHub Releases, PRs, or external feeds
- New backend routes or API integrations
- New reusable UI components just for changelog
Architecture
The changelog is implemented as standard Flowershow site content. The route /changelog resolves from content/flowershow-app/changelog.mdx, and entries live as markdown files inside content/flowershow-app/changelog/.
The index page uses a base block with:
filtersto include onlychangelogfolder contentsortbyfile.name DESCso filename date prefixes drive chronology- a cards view for scannability and image-forward updates
Content Model
Changelog Index
File: content/flowershow-app/changelog.mdx
- Must be MDX-capable (
.mdx) to render Bases - Includes brief intro copy and contributor guidance
- Uses a single Bases query as the canonical listing
Changelog Entries
Folder: content/flowershow-app/changelog/
Filename convention (required): YYYY-MM-DD-slug.md
Entry frontmatter:
title(required)description(recommended)image(recommended for cards and consistency)
The filename controls ordering; frontmatter controls display content.
Data Flow
- Middleware routes
/changelogto the content site renderer for home domain pages. - Renderer resolves
changelog.mdx. remark-obsidian-basesexecutes the query against site blobs.- Results are sorted by filename (descending) and rendered as cards.
- Card clicks navigate to individual changelog entry pages.
Validation and Edge Cases
- Malformed filenames still render but may sort incorrectly. We rely on documented naming rules.
- Empty folder renders the built-in “No results found” cards state.
- This iteration does not enforce schema validation at build time.
Testing Strategy
- Manual verification in local site:
/changelogresolves and renders- cards are sorted newest-first
- links open the expected entry pages
- nav and footer links route correctly
- Keep automated tests unchanged for this content-first iteration.
Future Evolution
- Auto-generate entries from releases/PR labels
- Add template tooling for “new changelog entry”
- Add stronger validation (e.g., filename/date linting)
- Add filters/tags (feature, docs, fix, performance)