Never Miss a Laravel Release 🚀
Inertia v2.3 was released, adding Laravel Precognition support to the Form component and useForm() out of the box. This update makes it super simple to start validating forms on the frontend using your Laravel validation rules.
Today we're bringing Precognition to Inertia's Form component! 🔮
— Inertia.js (@inertiajs) December 11, 2025
And not only in the Form component, we're also bringing it to useForm() out of the box. No additional packages needed anymore. pic.twitter.com/nPRGTyQ7mf
No additional packages are needed anymore. Laravel Precognition provides live validation (among other things) for your frontend using your backend validation rules. It hits your route's middleware and validation without running the controller code.
The Form Component
The Form component now has direct support for Precognition and provides useful methods such as valid() and invalid():
<template> <Form action="/users" method="post" #default="{ errors, invalid, validate, validating }"> <div> <input name="name" @change="validate('name')" /> <p v-if="invalid('name')"> {{ errors.name }} </p> </div> <div> <input name="email" @change="validate('email')" /> <p v-if="invalid('email')"> {{ errors.email }} </p> </div> <p v-if="validating">Validating...</p> </Form></template>
There are many more options and customizations available with this release. See Pull Request #2700 for implementation details. The documentation will help you get started with Precognition with the <Form/> component.
The useForm() Helper
You can use Precognition with the useForm() helper using the withPrecogition() method like so:
import { useForm } from '@inertiajs/vue3' const form = useForm({ name: '', email: '',}).withPrecognition('post', '/users')
See Pull Request #2684 for implementation details, and the documentation for using Precognition with useForm().
Release notes
You can see the complete list of new features and updates below and the diff between 2.2.21 and 2.3.0 on GitHub. The following release notes are directly from the changelog:
v2.3.0
- Support for Precognition in
useForm()by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2684 - Support for Precognition in
<Form>component by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2700 - Improve Precognition examples in Playgrounds by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2746
- Improve flaky tests by @pascalbaljet in https://github.com/inertiajs/inertia/pull/2747
- bugfix(whenVisible-vue): Fix loaded state when data already exists by @ClaraLeigh in https://github.com/inertiajs/inertia/pull/2748