Portfolio·Jun 2025

shailendrasingh.dev

Done

This portfolio — statically prerendered Next.js 14 App Router site with an MDX content layer, Framer Motion animations, and a server/client component split that keeps fs reads strictly server-side.

Tech Stack

Next.js 14TypeScriptTailwind CSSFramer MotionMDXVercel

What

  • Personal portfolio site built to show how I think about engineering, not just what I've built
  • MDX content layer for blog posts, projects, and whiteboard ideas — all parsed at build time, no CMS required
  • Strict server/client component split: all filesystem reads stay server-side, zero fs logic shipped to the browser
  • Whiteboard section for ideas in flight — a live engineering notebook alongside finished work
  • Dark/light theme with system preference detection and zero hydration flash on load

Why

  • Most developer portfolios are either over-designed Dribbble pieces or bare GitHub profile pages — neither shows how you actually think
  • Wanted a site where the code architecture is part of the portfolio: clean boundaries, deliberate tradeoffs, no magic
  • Static prerendering means instant load times and zero runtime infrastructure cost — a conscious choice over a headless CMS
  • The whiteboard section exists because shipping isn't the only signal worth showing — the ideas in progress matter too

How

  • Next.js 14 App Router with generateStaticParams for static prerendering of every route at build time
  • gray-matter parses MDX frontmatter at build time; content files live in the repo alongside the code
  • next-themes handles the dark/light toggle with localStorage persistence and suppressed hydration mismatch
  • Framer Motion powers scroll-triggered reveals and hover animations, isolated behind a client component boundary
  • Inter and Fira Code loaded via next/font with CSS variable injection — no layout shift, no FOUT
  • Deployed to Vercel via GitHub push with automatic preview deployments on every branch
GitHub