Loading…
A quick tour of what's new and how I structure a fresh Next.js 16 project for shipping fast.
Next.js 16 ships with the App Router as the recommended way to build modern React apps. Here's the lean setup I use on every new project.
app/
layout.tsx
page.tsx
components/
blog/
api/
lib/
content/
I keep route-level components inside app/components and shared primitives in
components/ui. Domain logic lives in lib/.
Dynamic route handlers receive params as a Promise, so always await it:
export default async function Page({
params,
}: {
params: Promise<{ slug: string }>;
}) {
const { slug } = await params;
return <h1>{slug}</h1>;
}
tailwindcss for stylingframer-motion for animationzod for runtime validationgray-matter + remark for contentThat's enough to ship a clean, content-driven site.