/changelog
Changelog
Public notes on the site itself: design changes, instrumentation, architecture decisions, performance work, and experiments.
Why keep a changelog?
It shows the site as a living product: what changed, why it changed, and how design, analytics, architecture, and performance decisions evolve over time.
Feat(music): Last.fm integration, Year in Review, and dashboard
- Last.fm stats API with year-scoped aggregation. Current-year tracks and computes top artists, tracks, albums, unique artists, seasonal genre breakdowns, and listening loyalty ratio.
- Monthly activity area chart, calendar heatmap, hourly distribution, and card-level period filter (7d / 1m only). Top lists with cover art, play counts, and contextual witty one-liners.
- Year in Review similar to Spotify wrapped slide overlay. Includes interesting metrics regarding my music behavior data analysis and 1080×1920 Instagram Story template export.
Blog, Brand Alignment, and Content Restructuring
- Added /blog route with list and detail pages, breadcrumb navigation, JSON-LD BlogPosting + BreadcrumbList schemas, and Sanity CMS integration with placeholder fallback.
- Refined role labels and added Marketing Technologist to rotating role words. Added Psyduck shimeji click tracking and footer rotating role component.
Migration and Enhancements
- Migrated to feature-first Next.js App Router with shared route shell, route-specific pages, Edge Middleware, per-route OG images, and improved typography and layout across all routes.
- Rewrote GitHub heatmap with UTC-to-local timezone handling, aligned month labels, and reduced API cache revalidation.
- Added semantic HTML improvements, structured JSON-LD schemas, and analytics instrumentation across the full stack.
- Expanded the /about page with enriched bio, certifications, and resume download.
- Removed unused dependencies, stale workflows, and legacy static files.