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
.mdxfiles 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)