You're viewing the Inertia.js v2.0 pre-release documentation. Upgrade guide →
The first step when installing Inertia is to configure your server-side framework. Inertia maintains an official server-side adapter for Laravel. For other frameworks, please see the community adapters.
Inertia is fine-tuned for Laravel, so the documentation examples on this website utilize Laravel. For examples of using Inertia with other server-side frameworks, please refer to the framework specific documentation maintained by that adapter.
Laravel's starter kits, Breeze and Jetstream, provide out-of-the-box scaffolding for new Inertia applications. These starter kits are the absolute fastest way to start building a new Inertia project using Laravel and Vue or React. However, if you would like to manually install Inertia into your application, please consult the documentation below.
First, install the Inertia server-side adapter using the Composer package manager.
composer require inertiajs/inertia-laravel:2.x-dev
Next, setup the root template that will be loaded on the first page visit to your application. This will be used to load your site assets (CSS and JavaScript), and will also contain a root <div>
in which to boot your JavaScript application.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
@vite('resources/js/app.js')
@inertiaHead
</head>
<body>
@inertia
</body>
</html>
This template should include your assets, as well as the @inertia
and @inertiaHead
directives.
By default, Inertia's Laravel adapter will assume your root template is named app.blade.php
. If you would like to use a different root view, you can change it using the Inertia::setRootView()
method.
Next we need to setup the Inertia middleware. You can accomplish this by publishing the HandleInertiaRequests
middleware to your application, which can be done using the following Artisan command.
php artisan inertia:middleware
Once the middleware has been published, append the HandleInertiaRequests
middleware to the web
middleware group in your application's bootstrap/app.php
file.
use App\Http\Middleware\HandleInertiaRequests;
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
HandleInertiaRequests::class,
]);
})
This middleware provides a version()
method for setting your asset version, as well as a share()
method for defining shared data.
That's it, you're all ready to go server-side! Now you're ready to start creating Inertia pages and rendering them via responses.
use Inertia\Inertia;
class EventsController extends Controller
{
public function show(Event $event)
{
return Inertia::render('Event/Show', [
'event' => $event->only(
'id',
'title',
'start_date',
'description'
),
]);
}
}