KitCraft
craft.ts
1
2
3
4
Crafting your experience…0%
Sep 21, 2026 · 1 min read

How to Build a Blog with the Next.js App Router

Next.js

A blog is one of the best ways to bring organic traffic to a product. Building one in the Next.js App Router is straightforward — and you can make it as simple or as rich as you like.

Where to store content

You have three main options: MDX files in your repo, a structured data format like JSON or typed objects, or a database. Files are great for a personal blog; a database is better when you want a draft/publish workflow, likes, and comments managed from an admin panel.

Dynamic routes

Use a `[slug]` dynamic route for individual posts and a listing page for the index. `generateStaticParams` pre-renders known posts at build time, while `dynamicParams` lets newly published posts render on demand without a rebuild.

SEO for every post

  • Generate per-post metadata (title, description, canonical, Open Graph) from the post data.
  • Emit BlogPosting JSON-LD so posts are eligible for rich results.
  • Add breadcrumbs and internal links to related posts.
  • Include each post in your dynamic sitemap.

Add engagement: likes and comments

Likes and comments turn a static blog into a community. Store them in your database, use server actions to record them, and moderate comments before they appear to keep spam out. A denormalized like counter keeps the post page fast.

The KitCraft marketplace blog is built exactly this way — database-backed posts with a draft/publish workflow, likes, and moderated comments — and the same patterns ship in our SaaS templates.

Share

Related guides

Comments

Comments are reviewed before appearing.