nextjs-server-actions
Installation
SKILL.md
Server Actions
Priority: P1 (HIGH)
[!WARNING] If project uses
pages/directory instead of App Router, ignore this skill entirely.
Handle form submissions and mutations without creating API endpoints.
Implementation Guidelines
- Directive: Always start file or function with
'use server'. AccessformData.get('title')for typed form fields. Export async functions for mutations. - Form Handling: Use
actionprop of<form>to trigger actions viaaction={createPost}. UseuseFormStatus()forpendingstates —disabled={pending}on buttons. UseuseActionState(React 19/Next.js 15) foraction={action}form state with<form action={action}>. - Data Refresh: Trigger UI updates using
revalidatePath('/')orrevalidateTag('tag-name')after successful mutation. - Interactivity: For non-form triggers, invoke actions using
useTransitionhook to handle loading UI and prevent page from blocking. - Optimistic Updates: Use
useOptimisticto show expected UI state immediately before server confirms mutation. - Security: Sanitize all inputs from
FormData. Perform auth checks inside every action (await auth()). Limit file uploads by size and MIME type.