Server Actions simplify data mutations in Next.js App Router.
Basic Server Action
typescript
'use server';
export async function createPost(formData: FormData) {
const title = formData.get('title');
await db.posts.create({ title });
revalidatePath('/posts');
}Usage in Component
typescript
import { createPost } from './actions';
function NewPostForm() {
const formAction = useFormState(createPost, null);
return (
<form action={formAction}>
<input name="title" />
<button type="submit">Create</button>
</form>
);
}Server Actions provide seamless server-client integration.