Summary
Ship a minimal NyxID blog page on the marketing site that renders blog posts
fetched from an external CDN, with a preview mode for unpublished drafts.
Motivation
Marketing needs a place to publish posts (release notes, deep dives, launch
announcements) without redeploying the frontend on every edit. Hosting the
content on a CDN lets writers iterate independently of the app's deploy
cadence and gives us a clean separation between code and content.
Scope
- New
/blog route with index (post list) and /blog/:slug (post detail)
- Posts fetched at request time from a CDN base URL
?preview=<token> query param to render unpublished drafts from a
separate preview path on the same CDN
- CDN base URL and preview token configured via env vars
(e.g. VITE_BLOG_CDN_URL, VITE_BLOG_PREVIEW_TOKEN) so deploys can swap
CDN buckets without code changes
- Markdown rendering (frontmatter for title / date / author / slug)
- Basic styling consistent with
DESIGN.md
Out of scope
- Authoring UI / CMS — content is committed to the CDN bucket out-of-band
- Comments, reactions, search
- RSS / sitemap (follow-up)
- Pagination beyond a simple "latest N" list
Acceptance criteria
Dependencies
Deadline
Thu 2026-04-30 (W18).
Summary
Ship a minimal NyxID blog page on the marketing site that renders blog posts
fetched from an external CDN, with a preview mode for unpublished drafts.
Motivation
Marketing needs a place to publish posts (release notes, deep dives, launch
announcements) without redeploying the frontend on every edit. Hosting the
content on a CDN lets writers iterate independently of the app's deploy
cadence and gives us a clean separation between code and content.
Scope
/blogroute with index (post list) and/blog/:slug(post detail)?preview=<token>query param to render unpublished drafts from aseparate preview path on the same CDN
(e.g.
VITE_BLOG_CDN_URL,VITE_BLOG_PREVIEW_TOKEN) so deploys can swapCDN buckets without code changes
DESIGN.mdOut of scope
Acceptance criteria
/bloglists posts pulled from the configured CDN/blog/:slugrenders a post's markdown with frontmatter metadata?preview=<token>matches theconfigured token
docs/ENV.md)DESIGN.mdvisual checklistDependencies
then, point at a placeholder bucket via env.
Deadline
Thu 2026-04-30 (W18).