@arkstack/inertia

InertiaJS server-side adapter for Arkstack, building the modern monolith with server-driven SPAs.
12,191 6
Install
npm install @arkstack/inertia
Latest Version:0.20.1
Last Updated:Oct 21, 2026
Links: GitHub  ·  npm
Maintainer: 3m1n3nc3

@arkstack/inertia

@arkstack/inertia

A runtime-agnostic InertiaJS server-side adapter for Arkstack. Build a single-page app (Vue, React, or Svelte) without an API: controllers return page components and props, and Inertia handles client-side routing. Works with both the Express and H3 drivers.

Install

pnpm add @arkstack/inertia

Then register the middleware in src/config/middleware.ts under before (alongside resora()):

import { inertia, resora } from '@arkstack/driver-express/middlewares' // or @arkstack/driver-h3/middlewares

export default (): MiddlewareConfig => ({
  before: [resora(), inertia()],
})

Publish the config and root template:

ark publish --package @arkstack/inertia

Usage

import { inertia, Inertia } from '@arkstack/inertia'

// Render a page — JSON page object on Inertia visits, full HTML on first load
return inertia('Users/Index', { users: await User.all() })

// Shared props (global at boot, or request-scoped inside a handler)
inertia().share('appName', config('app.name'))

// Partial-reload helpers
inertia('Users/Index', {
  users: await User.all(),
  stats: Inertia.lazy(() => expensiveStats()), // only on a partial reload that asks for it
  chart: Inertia.defer(() => buildChart()), // fetched by the client after load
  auth: Inertia.always({ user: request.user }), // always present, even on partials
})

// Redirects (302 -> 303 for PUT/PATCH/DELETE) and external/full-page visits
Inertia.redirect('/users')
Inertia.location('https://example.com')

Server-side rendering

Set ssr.enabled in src/config/inertia.ts, build an SSR bundle, and run it with the supervised command:

ark inertia:ssr   # runs dist-ssr/ssr.js, restarting it if it crashes

The initial visit is then server-rendered and the client hydrates it; if the SSR server is unreachable the adapter falls back to client-side rendering.

Documentation

See the Inertia guide for the full setup, partial reloads, asset versioning, configuration, and SSR.

Related Packages

@forinda/kickjs-inertia

Inertia.js adapter for KickJS — server-driven pages rendered by React, Vue or Sv...

448 17
inertia-native

Drive Inertia.js navigation and bridge components from Hotwire Native (iOS & And...

217 14
@pinooxhq/auth

Auth for Pinoox themes — zero configuration. Token/session, authorized HTTP, and...

1,021 2
@7nohe/adonis-typed-links

Typed link component for AdonisJS with Inertia

835 6
@dudousxd/nestjs-inertia

Inertia.js adapter for NestJS — core protocol and module.

11,125 4

Version History

Version Released License
0.20.1
0.20.0
0.19.6
0.19.5
0.19.4