laravel/folio
Laravel Folio is a powerful page-based router for Laravel applications. It simplifies routing by mapping Blade views to routes automatically, letting you build pages with a clean, file-based structure instead of manual route definitions.
Positioning. Laravel Folio is a first-party (laravel org) filesystem-to-route mapper: Blade pages under resources/views/pages become routes, with directory structure defining URLs, [param] segments defining route parameters, and file/folder naming defining middleware, domains, and route names. It is an alternative routing substrate, not an additive library — the decision is effectively "which router owns this surface area," which is a architectural commitment, not a dependency pick.
Architecture fit.
routes/web.php churn and removes the class of bugs where a controller, route, and view drift out of sync.Integration feasibility. Composer-installable, folio:install scaffolds paths, folio:list provides route visibility. Greenfield integration is measured in hours. Brownfield integration is measured in sprints because the real work is inventory and convention-setting, not installation.
Technical risk. The changelog is the strongest signal available, and it is mixed:
route:cache interaction (fixed in beta.4, again in v1.1.19 "Fixed route caching breaking Folio"). A router that intermittently disagrees with the cached route table is a production-severity class of bug because it manifests as 404s on deploy, not as an exception.index-prefixed slug misrouting (v1.1.6), nested model binding index views (v1.1.1), named-route resolution (v1.1.4). Individually minor; collectively they describe a resolution engine whose edge cases are still being discovered through field reports.Signals to interpret carefully. 608 stars and 0 Packagist dependents understate the package — it is maintained by the Laravel core team and documented on laravel.com, so its effective user base is far larger than the repo metrics imply. But the low numbers do mean a thin third-party knowledge base: fewer StackOverflow answers, fewer blog postmortems, and less coverage in model training data. The 1.1.13–1.1.17 additions of Boost guidelines and "Folio skills" are a deliberate mitigation of exactly that gap and are worth noting as a positive maturity indicator for AI-assisted development workflows.
Key questions for the evaluation gate.
route:cache in production and route:list in CI? If yes, Folio must be validated against both before any migration, not after.Stack fit. Requires Laravel (10.x+ in practice; 11/12/13 explicitly supported) and Blade. It is a Blade-and-web-routes technology — there is no meaningful Folio story for JSON APIs, and forcing one produces a router doing work it was not designed for. Best fit is a Laravel monolith or a web tier that already renders Blade.
Migration path — strangler, not cutover.
/pages/{path} or a dedicated subdomain) with zero existing routes moved.index vs [slug] disambiguation, and where business logic is allowed to live (Folio pages are views first; controllers still belong in classes for anything non-trivial).routes/web.php entries in the same PR so no URL is ever owned by two systems.Compatibility considerations.
route() call time.route:cache must be exercised in staging on every deploy path before production enablement; treat it as a gating test, not a smoke test.Sequencing recommendation. Spike (1 week) → convention RFC + authz baseline (1 week) → pilot section (2 weeks) → route:cache/route:list CI gates → phased section migration → legacy route removal. Do not sequence the pilot before the authz baseline; the pilot is where implicit middleware assignment gets validated and it is the highest-consequence lesson to learn late.
Alternative to price against. Plain routes/web.php with Route::view() gives ~70% of Folio's ergonomics for static pages with zero new dependency and full explicitness. Folio wins decisively once page count and page churn are high, or once file-collocation is valued over route-table diffability. Frame the build-vs-adopt decision in those terms rather than on star count.
Maintenance. Low vendor risk in the ordinary sense: MIT license, laravel org stewardship, active release cadence through at least v1.2.0, and consistent framework-compatibility work. The real maintenance cost is coupled upgrade cadence — Folio reaches into Laravel's routing internals, so Laravel upgrades are joint upgrades. Budget for it explicitly rather than discovering it during a framework bump.
Support. Official documentation lives on laravel.com (not in-repo), which is authoritative but terse; the repo itself carries only readme, changelog, and releases — no in-repo docs, no stated support SLA. Escalation path is GitHub issues and the Laravel community. Expect to be your own first-line support. The Boost/skills additions partially offset the thin public knowledge base for AI-assisted workflows but do not replace operational runbooks.
Scaling.
Failure modes to instrument.
Ramp-up. Baseline productivity for a Laravel-fluent developer is fast — hours, not days — because the conventions are small and the mental model is intuitive. The hidden cost is debuggability: when routing misbehaves, the developer is reasoning about a derived graph rather than reading a route file, and the thin public knowledge base means fewer answers to borrow. Budget a half-day team walkthrough plus a written convention doc, and designate one owner for the routing layer. Onboarding new hires to Folio is easy; onboarding them to debugging Folio is the part that needs the doc.
Bottom line. A well-maintained, first-party package with a real ergonomic payoff for page-heavy Blade applications — but a routing layer is a high-blast-radius component, and Folio's changelog shows a resolution engine still accumulating edge-case fixes, with at least one class of silent failure. Recommend adoption behind a bounded pilot with route:cache and authz gates in CI, and recommend deferral where the route table is small, explicit-auditability is a requirement, or the app is API-first.
How can I help you explore Laravel packages today?