Portfolio Site
The site you're looking at. MDX-driven, statically prerendered, with a tag-filtered blog and animated cards.
The stack
- Next.js 16 (App Router, Turbopack)
@next/mdx+gray-matterfor content- Tailwind CSS v4 + shadcn primitives
nuqsfor URL-synced filter state
What I'm proud of
The blog detail pages use a hero header with the cover image behind the title and a black gradient overlay. The list page filters by tag and paginates via useQueryState, so the URL is shareable.
What I'd change
The placeholder image is shared across all dummy content. Time to draw real cover art.