@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
Inertia.js adapter for KickJS — server-driven pages rendered by React, Vue or Sv...
Drive Inertia.js navigation and bridge components from Hotwire Native (iOS & And...
Auth for Pinoox themes — zero configuration. Token/session, authorized HTTP, and...
Version History
| Version | Released | License |
|---|---|---|
| 0.20.1 | ||
| 0.20.0 | ||
| 0.19.6 | ||
| 0.19.5 | ||
| 0.19.4 | ||
| 0.19.3 | ||
| 0.19.2 | ||
| 0.19.1 | ||
| 0.19.0 | ||
| 0.18.12 | ||
| 0.18.11 | ||
| 0.18.10 | ||
| 0.18.9 | ||
| 0.18.8 | ||
| 0.18.7 | ||
| 0.18.6 | ||
| 0.18.5 | ||
| 0.18.4 | ||
| 0.18.3 | ||
| 0.18.2 | ||
| 0.18.1 | ||
| 0.18.0 | ||
| 0.17.26 | ||
| 0.17.25 | ||
| 0.17.24 | ||
| 0.17.23 | ||
| 0.17.22 | ||
| 0.17.21 | ||
| 0.17.20 | ||
| 0.17.19 |
Showing the latest 30 of 70. See every release on npm