Use these App Router patterns:
Route groups((name)) — organizing pages without affecting the URL. Suitable for separating marketing/dashboard/auth areas
Layout nesting — layout.tsx Persists across navigation, only children re-renders
Loading/Error — each route segment can be individually configured with loading.tsx and error.tsx(error must be a Client Component)
Parallel routes(@slot) — one layout displaying multiple independent pages
Intercepting routes((.)) — show a modal when entering from a list, go to the normal page on direct access
Default to Server Components. Push Client boundaries down — only wrap the parts that need interactivity with 'use client'。