feat: public changelog, updates timeline, and animated sanity images
Ships a public `/changelog` fed from Sanity (with GitHub PR sync), rebuilds `/updates` as a month-filtered timeline with scroll-spy sidebar, delivers animated GIF/WebP from Sanity without breaking Next.js image optimization, and adds Windows/Mac platform glyphs on program discovery surfaces.
Highlights
- New /changelog page with release cards, multi-tag labels, month sidebar, and load-more pagination
- Sanity-backed changelogRelease docs with backfill scripts and a merge-to-main GitHub Action for draft sync
- /updates rebuilt as a grouped timeline with shared month sidebar, scroll-spy highlight, and scroll-preserving load more
- Animated GIF and WebP delivery from Sanity via imageDelivery helpers and AnimatedSanityImage
- Platform glyphs on /programs filters and related program cards
Changelog
- changelogRelease sanity schema with tags, highlights, sections, and a published flag
- PR body parser supports ## Changelog, ### subsections, tag comments, and redacts sensitive lines
- Backfill (npm run backfill:changelog) and per-PR sync (sync:changelog-pr) scripts plus .github/workflows/changelog-sync.yml
- Webhook revalidation for TAG_CHANGELOG when release docs publish
- Footer, sitemap, and metadata entries for the new route
Updates feed
- UpdatesTimeline with sticky year headings and month markers for scroll-spy
- Shared FeedMonthSidebar, FeedWithMonthSidebar, and feed pagination utilities
- Sidebar scroll-spy highlights the active month while browsing; month filter scrolls to the feed grid instead of page top
- Cross-links between /updates and /changelog
Image delivery
- sanityMotionImageUrl() and display-dimension helpers for motion-safe CDN URLs
- IdealImage mayAnimate slot for about blocks and featured showcase GIF
- preserveAnimation toggle on about-section images in Sanity Studio
- GROQ projection for image dimensions, LQIP, and animation metadata
- Site logo aspect-ratio warning fix on IdealImageClient
Discovery
- PlatformGlyphs component wired into ProgramsFilter and RelatedPrograms
Studio
- Sanity desk grouped into Programs, Store, Community, Analytics, and System folders
- Visitors pinned top, Changelog pinned bottom
