Next.js Dynamic Routes and Slugs: A Developer Guide
4 min read
Next.js uses file-system routing with bracket syntax for dynamic segments: [slug].
Basic Dynamic Route
// app/blog/[slug]/page.tsx
export default function BlogPost({ params }: { params: { slug: string } }) {
return <h1>{params.slug}</h1>;
}Generate Static Params
export async function generateStaticParams() {
const posts = await getPosts();
return posts.map(post => ({ slug: post.slug }));
}Catch-All Routes
[...slug] matches /a/b/c. [[...slug]] also matches the root.
Generate Slugs
Use our URL slug generator or kebab-case converter.