Build single-page apps, without building an API.

Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.

class UsersController
{
    public function index()
    {
        $users = User::active()
            ->orderByName()
            ->get()
            ->only('id', 'name', 'email');

        return Inertia::render('Users', [
            'users' => $users
        ]);
    }
}

JavaScript apps the monolith way

Inertia is a new approach to building classic server-driven web apps. We call it the modern monolith.

Inertia allows you to create fully client-side rendered, single-page apps, without much of the complexity that comes with modern SPAs. It does this by leveraging existing server-side frameworks.

Inertia has no client-side routing, nor does it require an API. Simply build controllers and page views like you've always done!

Jonathan Reinink
If you're interested in following along with the development of Inertia.js, I share updates about it with my newsletter.
Jonathan Reinink, creator

Framework adapters

Inertia isn't a replacement to your existing server-side or client-side frameworks. Rather, it's designed to work with them. Think of Inertia as glue that connects the two. Inertia does this via adapters. We currently have three official client-side adapters (React, Vue.js, and Svelte) and two server-side adapters (Laravel and Rails).

Demo application

If you'd like to see a complete working demo application built with Inertia.js, see Ping CRM. This application is built using Laravel and Vue.js.

Ping CRM