Inertia.js adapter for NestJS — TypeScript-first, multi-app, Tuyau-style typed client.
| Package | Description |
|---|---|
@dudousxd/nestjs-inertia |
Core protocol + module |
@dudousxd/nestjs-inertia-vite |
Vite dev/build helpers + plugin |
@dudousxd/nestjs-inertia-testing |
expectInertia matchers + fakes + TestingModule |
@dudousxd/nestjs-inertia-codegen |
Typed pages + routes + api.ts via nestjs-inertia codegen |
@dudousxd/nestjs-inertia-client |
Tuyau-style typed HTTP client (Contract + createFetcher + SSR hydration) |
Three end-to-end example apps demonstrate different adapter + frontend combinations:
| Example | Stack | Run |
|---|---|---|
examples/express-react/ |
Express + React + Vite | pnpm --filter @example/express-react dev |
examples/fastify-vue/ |
Fastify + Vue 3 + Vite | pnpm --filter @example/fastify-vue dev |
examples/express-svelte/ |
Express + Svelte 5 + Vite | pnpm --filter @example/express-svelte dev |
express-react is the canonical reference that exercises all five packages including the typed <Link> component and @ApplyContract codegen.
To run any example:
pnpm install
pnpm --filter @example/express-react dev # or fastify-vue / express-svelte
Full documentation site: https://davidecarvalho.github.io/nestjs-inertia/
| Document | Description |
|---|---|
| Getting Started | Quickstart: install five packages, run nestjs-inertia init, wire two lines — done in under five minutes. Includes deep-dive on forRoot options, codegen, typed Link, testing, and production build. |
| Guides | Installation, multi-app, testing, codegen, typed client |
| Recipes | Copy-paste solutions: auth redirect guard, not-found filter |
| Packages | Per-package API reference |
| Architecture | Package responsibilities and request lifecycle |
| CONTRIBUTING.md | Setup, TDD discipline, commit style, Changesets flow |
| CODE_OF_CONDUCT.md | Contributor Covenant 2.1 |
MIT — Copyright (c) 2026 Davide Carvalho