Loading
Loading
Next.js 15 brings significant improvements to the App Router. Here's what every developer needs to know before starting a new project.
In the App Router, every component is a React Server Component (RSC) by default — zero JavaScript bundle impact, direct database access, and sensitive data stays server-side. Only add 'use client' when you genuinely need it.
A layout.tsx file wraps all routes in its segment and persists across navigation — the layout doesn't remount when child routes change. Perfect for sidebar navigation and authenticated shells.
Next.js extends the native fetch() API with built-in caching. Use { next: { revalidate: 300 } } for ISR every 5 minutes, or { cache: 'no-store' } for always-fresh data. Use Promise.all() for parallel fetching.
Wrap slow data-fetching components in <Suspense> to stream the HTML shell immediately while slow parts load progressively — dramatically improves TTFB perception.
Fetch data in Server Components. Delegate interactivity to isolated Client Components at the leaf level. This "use client as low as possible" pattern minimises bundle size and maximises performance.