Next.js App Router blog skeleton with MDX.
- Next.js 16
- React 19
- Tailwind CSS 4
@next/mdx
pnpm install
pnpm devOpen http://localhost:3000.
Posts live under src/content/posts/<slug>/index.mdx.
export const metadata = {
title: 'Post title',
description: 'Short post description',
date: '2026-06-14',
};
Post body...- Shared MDX components live in
src/mdx-components.tsx. - Set
NEXT_PUBLIC_SITE_URLin production so canonical URLs, RSS, and sitemap use the deployed domain.
/shows recent posts./postsshows all posts./posts/<slug>importssrc/content/posts/<slug>/index.mdx./rss.xml,/sitemap.xml, and/robots.txtare generated from MDX metadata.