Overview
A fully custom portfolio site built from scratch using the Next.js App Router, Sanity as a headless CMS, and shadcn/ui components styled with Tailwind CSS. The site features a dark-mode-first design, statically generated blog posts, an experience timeline, and this projects showcase.
The Challenge
Building a portfolio that is fast, easy to maintain, and genuinely reflects how I work — without reaching for a template or a heavy CMS that gets in the way. The content model needed to be flexible enough to handle blog posts, project case studies, and an experience timeline, all managed from a single Sanity Studio.
Approach
Chose Next.js 16 App Router for static generation and streaming, Sanity for structured content, and Tailwind + shadcn/ui for a consistent design system. All pages are statically generated at build time with incremental revalidation — fast by default, no client-side fetching for content.
