When using Server Actions for form mutations, it is critical to validate data before processing it. Zod is a popular schema validation library for this purpose.
Example
ts'use server' import { z } from 'zod' const schema = z.object({ email: z.string().email(), }) export async function createUser(formData: FormData) { const parsed = schema.safeParse({ email: formData.get('email'), }) if (!parsed.success) { return { errors: parsed.error.flatten().fieldErrors } } // Proceed with safe data }