Server Actions enable server-side mutations directly from components. Here's how to use them.
Basic Server Action
With Form Validation
useFormStatus
Optimistic Updates
Revalidation
Redirect After Action
File Uploads
Error Handling
Inline Server Actions
Progressive Enhancement
Best Practices
Security:
✓ Always validate input on server
✓ Sanitize user data
✓ Check authentication/authorization
✓ Use CSRF protection (built-in)
Performance:
✓ Keep actions focused
✓ Use revalidation strategically
✓ Consider optimistic updates
✓ Handle loading states
UX:
✓ Show pending states
✓ Provide error feedback
✓ Support progressive enhancement
✓ Handle edge cases
Organization:
✓ Group related actions
✓ Use consistent error handling
✓ Type action returns
✓ Document complex actions
Conclusion
Server Actions simplify data mutations by eliminating API routes. Use them for forms, mutations, and server-side operations. Combine with useActionState for validation, useOptimistic for instant feedback, and always validate inputs on the server.