skillby AbdulSamad94
Next.js Patterns
Best practices and patterns for Next.js App Router, Server Actions, and Routing in this project.
Installs: 0
Used in: 1 repos
Updated: 2d ago
$
npx ai-builder add skill AbdulSamad94/nextjsInstalls to .claude/skills/nextjs/
# Next.js Patterns
## App Router
We use the Next.js 15 App Router located in `app/`.
### Pages
- **Location**: `app/[route]/page.tsx`
- **Component**: Default export function.
- **Client vs Server**: Use `"use client"` directive at the top for components requiring state (`useState`, `useEffect`) or browser APIs. otherwise default to Server Components.
### Layouts
- **Location**: `app/layout.tsx` (Root), `app/[route]/layout.tsx` (Nested).
- **Purpose**: Wrappers for pages, holding navigation, fonts, and metadata.
## Navigation
- Use `Link` from `next/link` for internal navigation.
- Use `useRouter` from `next/navigation` for programmatic navigation (inside Client Components).
```tsx
import Link from "next/link";
import { useRouter } from "next/navigation";
// Link
<Link href="/dashboard">Dashboard</Link>
// Router
const router = useRouter();
router.push('/login');
```
## Data Fetching
- **Server Components**: Fetch directly using `await fetch()` or DB calls.
- **Client Components**: Use `useEffect` or SWR/TanStack Query (if added later). Currently using standard `fetch` in `useEffect`.
## Font Optimization
- We use `next/font/google` (e.g., Poppins) in `app/layout.tsx`.
- Variable fonts are passed to `body` className.
## Metadata
- Define `export const metadata: Metadata = { ... }` in `page.tsx` or `layout.tsx` for SEO.Quick Install
$
npx ai-builder add skill AbdulSamad94/nextjsDetails
- Type
- skill
- Author
- AbdulSamad94
- Slug
- AbdulSamad94/nextjs
- Created
- 6d ago