Server-side data fetching
Fetch data in Server Components for better performance:app/dashboard/page.tsx
- Faster page loads (no client-side waterfalls)
- Better SEO (content rendered on server)
- Reduced client bundle size
- Secure (API credentials never exposed to browser)
Client-side mutations
Use Server Actions for data mutations:app/actions.ts
components/create-project-form.tsx
Optimistic updates
Update UI immediately, then sync with server:components/like-button.tsx
Error handling patterns
Handle errors gracefully at multiple levels:app/actions.ts

