← ClaudeAtlas

building-nextjs-appslisted

Build Next.js 16 applications with correct patterns and distinctive design. Use when creating pages, layouts, dynamic routes, upgrading from Next.js 15, or implementing proxy.ts. Covers breaking changes (async params/searchParams, Turbopack, cacheComponents) and frontend aesthetics. NOT when building non-React or backend-only applications.
aiskillstore/marketplace · ★ 329 · Web & Frontend · score 79
Install: claude install-skill aiskillstore/marketplace
# Next.js 16 Applications Build Next.js 16 applications correctly with distinctive design. ## Critical Breaking Changes (Next.js 16) ### 1. params and searchParams are Now Promises **THIS IS THE MOST COMMON MISTAKE.** ```typescript // WRONG - Next.js 15 pattern (WILL FAIL) export default function Page({ params }: { params: { id: string } }) { return <div>ID: {params.id}</div> } // CORRECT - Next.js 16 pattern export default async function Page({ params, }: { params: Promise<{ id: string }> }) { const { id } = await params return <div>ID: {id}</div> } ``` ### 2. Client Components Need use() Hook ```typescript "use client" import { use } from "react" export default function ClientPage({ params, }: { params: Promise<{ id: string }> }) { const { id } = use(params) return <div>ID: {id}</div> } ``` ### 3. searchParams Also Async ```typescript export default async function Page({ searchParams, }: { searchParams: Promise<{ page?: string }> }) { const { page } = await searchParams return <div>Page: {page ?? "1"}</div> } ``` --- ## Core Patterns ### Project Setup ```bash npx create-next-app@latest my-app --typescript --tailwind --eslint cd my-app # Add shadcn/ui npx shadcn@latest init npx shadcn@latest add button form dialog table sidebar ``` ### App Router Layout ```typescript // app/layout.tsx export default function RootLayout({ children, }: { children: React