Compatibility and upgrades
InertiaX packages version independently. Update the packages needed for your change, keep their declared dependency ranges compatible, and commit the resulting lockfiles.
Supported ranges
Section titled “Supported ranges”Supported host versions:
| Layer | Supported versions |
|---|---|
| PHP | 8.3, 8.4, 8.5 |
| Laravel | 12, 13 |
| React and React DOM | 19.1.1 or newer within React 19 |
| Inertia server adapter | inertiajs/inertia-laravel 2.0.5+ or 3.x |
| Inertia React adapter | @inertiajs/react 2.3.18+ or 3.x |
| Protocol | draft 0.3.0 |
Laravel 13 with the Inertia 2 server adapter starts at 2.0.21 in the test matrix. Later minor and patch releases remain inside the declared compatible ranges, but the exact combinations below are the regression-tested anchors.
Tested combinations
Section titled “Tested combinations”The regression matrix checks lowest and stable dependencies for these combinations:
| Laravel | PHP | Inertia server constraint | Inertia generation |
|---|---|---|---|
| 12 | 8.3 | ^2.0.5 |
2 |
| 12 | 8.4 | ^3.0 |
3 |
| 12 | 8.5 | ^2.0.5 |
2 |
| 13 | 8.3 | ^2.0.21 |
2 |
| 13 | 8.4 | ^3.0 |
3 |
| 13 | 8.5 | ^3.0 |
3 |
The frontend adapter is separately tested against @inertiajs/react 2.3.18 and 3.6.1. End-to-end
package and application checks exercise both matched generations.
Match server and client Inertia generations
Section titled “Match server and client Inertia generations”Use one of these pairs:
| Laravel adapter | React adapter | Status |
|---|---|---|
| 2.x | 2.x | Supported |
| 3.x | 3.x | Supported |
| 2.x | 3.x | Not supported |
| 3.x | 2.x | Not supported |
The adapter packages may have different minor or patch numbers, but their major generations must match.
Upgrade the affected packages
Section titled “Upgrade the affected packages”- Read the changelog for each package you intend to update.
- Allow the package manager to resolve compatible dependencies. Declare
@inertiax/table-coreor@inertiax/table-protocoldirectly only when application source imports them. - If a release changes the Table wire contract, update its Laravel producer and frontend decoder to versions that support that contract in the same application change. npm and Composer version numbers do not need to match; see Protocol reference.
- Run the application’s server and frontend checks, repeat the first-table interaction, and commit the changed lockfiles.
A renderer-only fix or compatible foundation update does not inherently require a Laravel or Inertia-adapter release. Keep Inertia server/client generations matched when updating the host.
The shared React provider and its hooks must resolve to one app-selected @inertiax/react
installation. Composer resolves one inertiax/laravel version for the application. If dependency
ranges conflict, choose a tested compatible combination; forcing installation does not establish
compatibility. Published ranges and contract support are the limits, not a promise that arbitrary
old and new package majors can coexist.