This website — Content system & frontend
2025
Designed and built nathancheng.work in Next.js. The original setup split content across Sanity CMS and media across Cloudinary; in 2026 I consolidated everything into a single codebase. Content now lives as MDX files in the repo, with media in a single Cloudflare R2 bucket, so content edits ship in the same PRs as code.
Filtered views by medium and category are shareable via URL state, with direction-aware morphing transitions between them. Motion details across the site include a shader-driven hero, scroll-driven card stacking inspired by iOS notification physics, and layout-animated selection indicators with spring physics.
Some things built into the site:
- Three switchable homepage views — Visuals, Projects, and Roles — on one continuous surface, with the active view and filter persisting in the URL
- Collection-based filtering with deep-linkable URLs
- A full-screen lightbox for any image or video
- Custom MDX components for article bodies (inline media, captioned bins, edge-bleeding carousels)
- Dominant-color image placeholders and automatic video posters
- Visual effects: water-shader hero, spotlight cursor, magnetic hover, progressive blur
- All written content is plain markdown — articles, CV entries, project cards like this one — following Obsidian conventions: frontmatter for metadata, wikilinks for cross-references
- Markdown twins of every page (
/projects.md,/about.md,/llms.txt, …) so AI models can read the portfolio without rendering the SPA - Conventions and decision logs for AI-agent collaboration on the codebase itself
- Roles
- Design engineer
- Mediums
- Code, Web, User interface
- Type
- Side project





























































































