Server Actions and Mutations
managing-server-actions
Defines the standard pattern for Next.js 15 Server Actions to handle mutations securely. Use for form submissions and data updates.
SKILL.md
Full skill instructions
Server Actions and Mutations
When to use this skill
- When handling form submissions (
'use server'). - When mutating data in Appwrite from the frontend.
- When you need to revalidate the cache after an update.
Workflow
- Create actions in
app/actions/or directly in the component file. - Use
'use server'at the top of the function or file. - Implement
try-catchfor error handling. - Call
revalidatePath()to refresh the UI.
Code Template (Next.js 15)
'use server'
import { revalidatePath } from 'next/cache';
import { BookingService } from '@/services/bookings';
export async function createBookingAction(formData: FormData) {
try {
const tourId = formData.get('tourId') as string;
// Logic to create booking...
await BookingService.create({ ... });
revalidatePath('/dashboard/bookings');
return { success: true };
} catch (error) {
return { success: false, error: 'Failed to create booking' };
}
}
Instructions
- Security: Always validate user session/permissions inside the Server Action.
- Data Refresh: Use
revalidatePathfor the specific route orrevalidateTagfor broader invalidation.
