Upgrade Guide¶
Move existing Litestar-Vite Inertia apps from Inertia v2 to Inertia v3 without losing compatibility for projects that stay on v2.
See also
Official Inertia.js docs: Upgrade Guide
Version Support¶
litestar-vite supports Inertia v2 and v3.
Generated templates and examples now target Inertia v3.
Existing Inertia v2 projects remain supported.
The main version-specific difference in this repository is script-element bootstrap configuration.
What Changes In This Repository¶
litestar-vite now defaults Inertia apps to script-element bootstrap:
Inertia v3 clients use the script-element bootstrap by default.
Inertia v2 clients must still enable
defaults.future.useScriptElementForInitialPageincreateInertiaApp(...).If
InertiaConfig(ssr=True)is enabled, Inertia v2 SSR entries must mirror that same setting.
The generated page-props.ts contract now also matches runtime behavior for non-mapping handler returns by nesting those payloads under content.
Upgrade Steps¶
Bump your frontend adapter package to Inertia v3.
React:
@inertiajs/react@3Vue:
@inertiajs/vue3@3Svelte:
@inertiajs/svelte@3
Remove explicit
use_script_element=Trueif you previously added it just to enable the default transport.Remove the Inertia v2-only client opt-in:
defaults: { future: { useScriptElementForInitialPage: true, }, }
In Inertia v3, that transport is already the default.
If you use an SSR entry (
resources/ssr.tsx/resources/ssr.ts), remove the samedefaults.future.useScriptElementForInitialPageblock there too.Reinstall dependencies and regenerate package lockfiles so the adapter upgrade is reflected in committed manifests.
Framework Notes¶
React projects in this repository already use React 19, which matches Inertia v3 requirements.
Vue projects in this repository already use Vue 3 and only need the adapter bump.
Svelte Inertia scaffolds in this repository already use Svelte 5, which matches Inertia v3 support.
Staying On Inertia v2¶
If you are not ready to upgrade yet, keep your current Inertia v2 adapter package and retain the
defaults.future.useScriptElementForInitialPage client configuration while using the default
script-element transport, or set InertiaConfig(use_script_element=False) to stay on the legacy
data-page bootstrap.