← Back to blog

Why I rebuilt the site in Next.js


title: Why I rebuilt the site in Next.js date: 2026-04-21 excerpt: Moving off an ASP.NET template I never customized. Here's why Next.js made sense.

Why I rebuilt the site in Next.js

The previous version of this site was a default ASP.NET Core MVC template from 2018. I never added any real content — just the starter banners and some placeholder pages. Every time I thought about updating it, I bounced off the friction: compile step, server project, templates I didn't know well.

Next.js solves that for me:

  • One toolchain. Pages are React components. Blog posts are MDX files.
  • Zero-config deploys. Push to a branch, get a preview URL.
  • It's just files. New post = new .mdx file. No database, no CMS.

The stack fits how I actually work: write markdown, commit, move on.

Tradeoffs

Static-ish sites don't need any of the more advanced Next.js features — ISR, Server Actions, the works. I'm using maybe 10% of the framework. That's fine. The 10% I'm using is the part I wanted.

If I ever need more — auth, dashboards, a real CMS — the runway is already there.

A blog post is just a file

Adding a new post is two steps. Create the MDX file:

# My new post
 
Some **markdown** content. Code blocks highlight automatically.

Then register it in src/lib/posts.ts:

export const posts: Post[] = [
  {
    slug: "my-new-post",
    title: "My new post",
    date: "2026-04-23",
    excerpt: "One-line description.",
  },
  // ...
];

That's it. It shows up at /blog/my-new-post, the blog index, the sitemap, the RSS feed, and gets its own auto-generated OG image for social sharing.