Client setup
Configure Vite and the React, Vue or Svelte client for an Inertia.Net app.
Inertia.Net speaks the Inertia.js v3 protocol. Install a v3 client package; v2 clients are not supported.
Install the client
Run the npm commands from the ASP.NET Core project directory (the one containing your .csproj).
The starter templates use ClientApp/pages. The manual examples below use resources/js/Pages. Keep the resolver, file paths and Vite entry consistent with the layout you choose.
Vite configuration
The same Vite config works for every client; only the framework plugin changes.
Add these fields to package.json:
The manifest key of the entry (resources/js/app.tsx) is what you pass to @vite("...").
Client entry
The optional @inertiajs/vite plugin resolves pages and mounts the app for you. With it, the entry is just:
Without the plugin, provide the resolver and setup yourself.
Pages
A page file receives the props from Render(...) as normal component props.
Use the generated types
Inertia.Net can write TypeScript declarations for your page props, shared props and flash data. See TypeScript types.
Development workflow
Open the ASP.NET Core URL, not the Vite URL. In Development the app reads wwwroot/hot and renders the Vite tags; in production it reads the manifest.
For production:
Node is needed to build the assets and only needed at runtime when SSR is enabled.
Using @inertiajs/vite
The plugin also contributes the SSR dev endpoint and page resolution. Add it before the hot-file plugin:
Keep the SSR listener on loopback: the renderer trusts its output and has no authentication. The SSR guide covers the full setup.