Public changelog page with admin CRUD. Multi-locale JSONB content following the CMS pattern. Toggle via appConfig.features.changelog.
Public Page
Timeline layout at /changelog. Version badges, color-coded type badges. Markdown rendering. ISR (1h). JSON-LD structured data.
Admin CRUD
/admin-dashboard/changelog — create, edit, publish/unpublish, delete. Locale tabs for title + content.
Entry Types
Feature (violet), Improvement (blue), Fix (green), Breaking (red), Security (orange). DB-level check constraint.
Security
Markdown sanitized before storage (strips scripts, iframes, event handlers). Admin-only RLS with WITH CHECK. UUID validation on all params.
| API Route | Method | Description |
|---|---|---|
/api/admin/changelog | GET | List all entries (including drafts) |
/api/admin/changelog | POST | Create entry |
/api/admin/changelog | PATCH | Update entry |
/api/admin/changelog | DELETE | Delete entry |