Building with Next.js in 2025
Next.js continues to evolve, and the App Router has matured significantly. Here's why I chose it for this site.
The Hybrid Approach
What makes Next.js powerful is its flexibility:
- Static pages for content that rarely changes (like this blog)
- Dynamic APIs for interactive features
- Server Components for optimal performance
Key Features I'm Using
Static Site Generation
Blog posts are generated at build time:
export async function generateStaticParams() {
const slugs = getAllPostSlugs();
return slugs.map((slug) => ({ slug }));
}
Markdown with Frontmatter
Each post is a simple markdown file with metadata:
---
title: "Post Title"
date: "2025-01-17"
public: true
---
This keeps content portable and version-controlled.
The Stack
- Next.js 15 with App Router
- Tailwind CSS for styling
- gray-matter for parsing frontmatter
- remark for markdown processing
Simple, proven tools that just work.
Conclusion
Sometimes the best architecture is the simplest one. Next.js gives you the flexibility to start simple and scale up when needed.