Building This Site
Building This Site
I wanted a personal site that was fast, easy to write for, and didn't require maintaining a CMS. Next.js with MDX files checked all three.
The stack
- Next.js 16 with the App Router
- Tailwind CSS v4 for styling
- MDX for blog posts — write in markdown, embed React components when needed
- Vercel for hosting
How blog posts work
Each post lives in content/blog/ as an .mdx file. A registry in lib/posts.ts lists every post with its title, date, and description — that's what powers the blog index.
export const posts: Post[] = [
{
slug: "building-this-site",
title: "Building This Site",
date: "2026-06-24",
description: "How I built this site.",
},
]
When you visit /blog/building-this-site, Next.js dynamically imports the corresponding MDX file and renders it. generateStaticParams ensures every post is statically generated at build time.
Deploying to Vercel
npx vercel --prod
That's genuinely it. Vercel detects Next.js automatically and configures everything correctly.