rompetomp/inertia-bundle
Inertia.js adapter for Laravel for building single-page apps with classic server-side routing and controllers. Ships the middleware, root view, and config so Vue, React, or Svelte pages plug into Laravel without a separate API, with asset versioning and shared props built in.
Architecture fit. Despite being filed under "Laravel/PHP," rompetomp/inertia-bundle is the Symfony adapter for Inertia.js, not the Laravel one (that is inertiajs/inertia-laravel). The architectural pattern is sound and well understood: controllers return Inertia responses rendered as JSON page objects (component, props, url, version), and a single client-side adapter mounts the matching frontend component. This gives us SPA-style navigation without building or operating a separate API, and keeps routing, middleware, and authorization in the PHP layer where the team already has leverage. Fit is good if the target application is Symfony 6/7; if the intent was a Laravel app, this package is the wrong dependency and the assessment should be re-scoped before any work begins.
Integration feasibility. Low-to-moderate. Requires Composer install, bundle registration in config/bundles.php, a root Twig template hosting the @inertia mount point, a shared-props strategy (middleware or a base controller), and asset versioning wired to Vite/Encore so Inertia can detect deploys. None of this is exotic, but the asset-versioning step is where most first integrations stall and it needs an owner.
Technical risk.
Key questions.
Stack fit. Assumes Symfony 6.x/7.x on PHP 8.1+, Twig for the root template, and a JS toolchain (Vite or Webpack Encore) for the frontend adapter. Verify the bundle's declared Symfony constraints against our pinned version before committing — a mismatch here is the single most likely reason the integration gets abandoned mid-sprint.
Migration path. Inertia is best adopted incrementally, not as a rewrite. Recommended path:
Compatibility. v2.4.3 is a drop-in patch from v2.4.2 — no config changes, no template changes, no data migration. Safe to consume on a normal dependency-refresh cycle. The custom-URL API is opt-in and can be ignored until we have a concrete use case.
Sequencing. Composer update → bundle registration → root template → shared-props middleware → asset versioning → first converted page → SSR decision (defer) → broader rollout. Front-load the asset-versioning work; it is the dependency that gates everything after step 3.
Maintenance. Low ongoing burden. The package changes rarely and the upgrade surface is small; budget a dependency-review slot per quarter rather than continuous attention. Pin the version and let Renovate/Dependabot surface updates for review.
Support. Community-only. There is no commercial support, no published SLA, and no security disclosure process documented. For an internal-facing surface this is acceptable; for a customer-facing, revenue-path surface it needs to be an explicitly accepted risk with a named internal owner and a fork-and-patch contingency.
Scaling. The server side is stateless — each request produces a JSON payload — so it scales with the existing PHP fleet and benefits from our current caching and load-balancing. The scaling concern is payload size: large shared props on every response inflate bandwidth and serialization cost. Keep shared props to identity, flash messages, and feature flags; page-specific data belongs per-controller. If SSR is adopted later, it introduces a long-lived Node process that needs its own supervision, health checks, and horizontal scaling — a materially different operational profile that should be a separate decision.
Failure modes to plan for.
Ramp-up. For a Symfony developer already fluent in Twig, roughly one to two days to a working first page and one to two weeks to comfortable, productive use. Frontend developers new to Inertia need to unlearn client-side routing assumptions — that is the more common source of friction, not the PHP side. Budget a short internal walkthrough and a written convention doc (shared props, page naming, URL rules) before broadening adoption.
Recommendation. Adopt for Symfony-based applications, on an internal-facing surface first. Consume v2.4.3 as a routine patch; the custom page URL capability is worth tracking but not worth building around yet. Treat the single-maintainer risk as the outstanding item to formally accept or mitigate.
How can I help you explore Laravel packages today?