Personal Portfolio Website

Personal Portfolio Website

Next.jsTypeScriptTailwind CSSMDX

Overview

A fully custom personal portfolio site and blog built from the ground up with Next.js 14 App Router, TypeScript, and Tailwind CSS.

Key Features

  • MDX-powered content — blog posts and project pages are plain .mdx files in the repo
  • Dark mode with system preference detection
  • Responsive design with a modern glassmorphism aesthetic
  • Static generation — zero runtime DB queries, everything pre-rendered
  • Contact form powered by Resend
  • Vercel Analytics for privacy-friendly visitor tracking

Technical Decisions

The biggest decision was migrating away from Sanity CMS to a file-based MDX approach. Content that rarely changes (projects, blog posts) doesn't need a database — it needs version control.

Tech Stack

  • Next.js 14 (App Router)
  • TypeScript
  • Tailwind CSS
  • MDX + gray-matter
  • Resend (email)
  • Vercel (hosting + analytics)