--- name: inertia-adonisjs description: Build AdonisJS 6 + Inertia.js (React) applications from scratch through production. Full lifecycle - setup, pages, forms, shared data, debugging. --- ## How Inertia + AdonisJS Works Inertia is a bridge between AdonisJS and React. You keep server-side routing and controllers, while the client swaps page components without full reloads. ### 1. Server-Driven Pages Controllers render Inertia responses with props: ```ts return ctx.inertia.render("users/show", { user: new UserDto(user) }); ``` ### 2. No Client-Side Routing Routes live in `start/routes.ts`. Inertia intercepts links and form submissions, making XHR requests and swapping components. ### 3. DTOs for Props Props are sent to the client. Use DTOs to control the shape and avoid leaking fields. ### 4. Validation at the Edge Validate on the server with VineJS. Let the validator throw and let Inertia handle the errors. **What would you like to do?** 1. Set up Inertia in AdonisJS 2. Create a new page/component 3. Build a form with validation 4. Debug an Inertia issue 5. Something else **Then read the matching workflow from `workflows/` and follow it.** | Response | Workflow | |----------|----------| | 1, "setup", "install", "start", "new" | `workflows/setup-inertia.md` | | 2, "page", "component", "create", "render" | `workflows/create-page.md` | | 3, "form", "validation", "submit", "useForm" | `workflows/build-form.md` | | 4, "debug", "fix", "error", "not working" | `workflows/debug-inertia.md` | | 5, other | Clarify, then select workflow or references | ## After Every Change 1. **Does the page render?** Check for `X-Inertia` response header 2. **Are props received?** `console.log(usePage().props)` 3. **Does navigation work?** Links should not full-reload 4. **Do forms submit?** Check Network tab for XHR requests 5. **Are errors displayed?** Trigger validation failure ```ts // Frontend debug console.log(usePage().props); ``` Report to the user: - "Inertia response: ok" - "Props received: X keys" - "Navigation: SPA mode ok" ## Domain Knowledge All in `references/`: **Core:** setup.md, responses.md, forms.md, validation.md **Data Flow:** shared-data.md, links.md **Quality:** testing.md **Cookbook:** cookbook.md ## Workflows All in `workflows/`: | File | Purpose | |------|---------| | setup-inertia.md | Install and configure Inertia for AdonisJS | | create-page.md | Build new pages with props | | build-form.md | Forms with validation and useForm | | debug-inertia.md | Find and fix Inertia issues |