Skip to main content
The Kit Review
LatestCategoriesAboutNewsletter
The Kit Review

Writing on design, code, and the craft of shipping software.

Read

  • Latest
  • Categories
  • About
  • Newsletter
  • Search

Sections

  • Technology
  • Design
  • Engineering
  • AI & ML

Subscribe

Get new essays in your inbox.

© 2026 The Kit Review. All rights reserved.

RSS FeedSitemapAdmin Panel
technology Edit

The Complete Guide to Next.js 16 App Router

Everything you need to know about Next.js 16's App Router — from layouts and loading states to parallel routes and intercepting routes.

SC
Sarah Chen
July 19, 2026·12 min read
The Complete Guide to Next.js 16 App Router

What Changed in Next.js 16

Next.js 16 brings significant improvements to the App Router, making it the definitive way to build React applications. The key changes include improved streaming, better error handling, and new route patterns.

Layouts: The Foundation

Layouts are the building blocks of your application's UI architecture. They persist across navigations and maintain state:

tsx
export default function DashboardLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <div className="flex min-h-screen">
      <Sidebar />
      <main className="flex-1 p-6">{children}</main>
    </div>
  )
}

Warning

Layouts do not re-render on navigation. If you need fresh data on every navigation, use a page component instead.

Loading States

The loading.tsx convention gives you instant loading UI:

tsx
export default function Loading() {
  return <DashboardSkeleton />
}

Route Groups

Organize routes without affecting URLs using parenthesized folders:

text
app/
├── (marketing)/
│   ├── about/page.tsx     → /about
│   └── blog/page.tsx      → /blog
├── (app)/
│   ├── dashboard/page.tsx → /dashboard
│   └── settings/page.tsx  → /settings

Server Components by Default

Every component in the App Router is a Server Component unless you opt in with "use client". This means:

  • Zero JavaScript shipped to the client by default
  • Direct database access in components
  • Smaller bundle sizes

Parallel Routes

Render multiple pages simultaneously in the same layout:

text
app/
├── @analytics/page.tsx
├── @team/page.tsx
└── layout.tsx

This is incredibly powerful for dashboards where independent sections load at different speeds.

Share
#nextjs#react#typescript
SC

Written by

Sarah Chen

admin

Senior frontend engineer and tech writer. Passionate about React, TypeScript, and building great developer experiences. Previously at Vercel and Stripe.

Comments (2)

LN
Lisa Nakamura2 months ago

Great overview! One question — how do you handle authentication in the App Router? I've been struggling with middleware vs layout-level auth checks.

AP
Alex Petrov2 months ago

The parallel routes section was incredibly helpful. We just implemented this pattern in our dashboard and it improved perceived load time significantly.

Keep reading

Read Building a Design System with Tailwind CSS v4 and React
Building a Design System with Tailwind CSS v4 and React

design

Building a Design System with Tailwind CSS v4 and React

Learn how to create a scalable, token-based design system using Tailwind CSS v4's new CSS-first configuration and React component patterns.

APAisha Patel·Jul 21, 2026
4,280
Read Mastering TypeScript Generics: Real-World Patterns
Mastering TypeScript Generics: Real-World Patterns

engineering

Mastering TypeScript Generics: Real-World Patterns

Move beyond basic generics with practical patterns for type-safe APIs, component props, and utility types that you'll use every day.

MRMarcus Rivera·Jul 16, 2026
5,120
Read Optimizing React Performance: From 3s to 300ms
Optimizing React Performance: From 3s to 300ms

engineering

Optimizing React Performance: From 3s to 300ms

Real performance wins from a production React app — covering code splitting, memo strategies, virtualization, and the new React compiler.

SCSarah Chen·Jul 11, 2026
6,230
Previous

Mastering TypeScript Generics: Real-World Patterns

Next

Building a Design System with Tailwind CSS v4 and React