Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Route List Web Laravel Package

apih/laravel-route-list-web

Adds a browser-based route inspector to Laravel, giving you a searchable, filterable web UI for your app's registered routes—method, URI, name, action, and middleware—so you can debug routing without dropping into the terminal or running artisan route:list.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — The package is a thin, additive layer over Laravel's existing route collection: a service provider, a route registration, a controller, and a Blade view that renders Route::getRoutes(). It introduces no database, queue, cache dependency, or external service, and it does not sit on any request path other than its own. That makes it architecturally inert with respect to the host application — the blast radius of adopting or removing it is essentially one Composer entry and one config file. It is a developer-observability convenience, not infrastructure.

Integration feasibility — Install is a standard composer require with package auto-discovery; publishing a config file and registering an authorization gate or middleware is the only meaningful configuration. The real integration work is not technical but procedural: deciding who may see the route table. The page exposes route URIs, HTTP verbs, controller/action names, middleware stacks, route names, and parameter names — a useful map of the application's internal surface. In a non-public or authenticated-only context that is fine; on any internet-reachable page without a gate it is an information-disclosure finding waiting to be filed.

Technical risk — Low technical complexity, moderate adoption risk. At 17 stars the package has negligible community validation, which means edge cases (Octane, route caching, domain routing, vendor-published routes, invokable controllers, large route counts) are unlikely to have been exercised broadly. The single-maintainer profile and a recent release date suggest current activity but do not demonstrate a maintenance track record. Supply-chain exposure is small given the package's size and MIT license, but it is still a dependency that will need to be re-validated against each Laravel major.

Decision posture — Treat this as a low-cost, low-commitment developer tool with a hard environment gate, not as a platform dependency. Value is high per unit of effort (opportunity score 0.82 against a modest absolute score), but the correct posture is "pilot in dev/staging, decide on production exposure after an authorization review."

Key questions

  • Which Laravel and PHP versions are supported, and is Laravel 11/12 explicitly declared in composer.json?
  • Does it work correctly when php artisan route:cache is active, and does it reflect cached routes rather than booting a divergent set?
  • Is there a built-in authorization gate, and can the route registration be disabled entirely via config per environment?
  • Does it surface middleware groups, route names, domains, and vendor routes, or only the top-level URI/action pairs?
  • What is the test coverage, and is CI running against multiple Laravel majors?
  • How does it handle thousands of routes — pagination, search, filtering, or a single unbounded table?

Integration Approach

Stack fit — Any conventional Laravel application, including monoliths and modular/large-route apps. It is framework-native and framework-coupled by design, so it fits nowhere outside Laravel — which is fine if the portfolio is Laravel-standardized and irrelevant if it is not. No overlap with existing tooling beyond artisan route:list, which it complements rather than replaces (the CLI remains the source of truth for scripting and CI, the web view serves humans).

Migration path — There is nothing to migrate off. Adoption is additive and reversible: install, publish config, restrict access, done. The genuine substitution opportunity is replacing whatever ad-hoc route documentation exists today — wiki pages, spreadsheets, screenshots of route:list output, or a bespoke internal "routes" page — all of which decay silently. That is the real value proposition: a documentation artifact that cannot go stale because it is generated from the router at request time.

Compatibility — Verify three things before rollout: (1) declared Laravel/PHP constraints against the current application version; (2) coexistence with route caching in staging and production-like environments; (3) no route collision — if the package registers a fixed path, confirm it does not shadow or get shadowed by an application catch-all or wildcard route, and confirm the path is configurable. Also confirm no conflict with debug tooling (Telescope, Debugbar, Horizon) that already registers routes.

Sequencing

  1. Install in a local development environment only; compare output against artisan route:list for a known application to confirm fidelity.
  2. Review exactly what the page renders and classify each field as safe or sensitive for internal audiences.
  3. Implement authorization before any shared-environment deployment: an Auth middleware plus a Gate check, with the gate defined in application code so access is controlled by the host app, not the package.
  4. Enable in staging for one sprint as internal documentation; collect feedback from engineers onboarding to the codebase.
  5. Make an explicit go/no-go on production exposure; default to "no" unless the app is already behind SSO and an authorization gate is trivially enforceable.
  6. Pin the version in composer.json (caret constraint at minimum), record the decision in an ADR, and add a line to the onboarding doc.

Operational Impact

Maintenance — Near-zero routine cost, but non-zero ownership cost: someone must track upstream releases and re-validate on each Laravel major upgrade. Because the package inspects framework internals (the route collection), it is more exposed to framework upgrades than a typical library. Pin the version and treat upgrades as a deliberate, tested change rather than letting a floating constraint pull in surprises.

Support — Support burden is minimal and entirely internal; there is no runtime dependency for end users and no external service to page anyone about. Expect occasional "the route page is broken" tickets after framework upgrades. The single-maintainer risk means a future unmaintained state is plausible; mitigate by keeping the footprint small enough that forking or inlining a Blade view over Route::getRoutes() remains a viable escape hatch of a few hours' work.

Scaling — Reads and renders the full route collection per request. For applications with hundreds or low thousands of routes this is a non-issue on an infrequently visited internal page. For very large route sets, expect slow page loads and heavy DOM rendering; confirm whether filtering or pagination exists, and if not, treat the page as unsuitable for the largest applications or restrict its use to local development. It does not scale in the sense of serving traffic — it isn't supposed to.

Failure modes

  • Information disclosure: the primary risk. Missing or misconfigured authorization exposes the application's route topology; this is the failure that matters and the one to design against.
  • Upgrade breakage: a Laravel major change breaks route introspection; the page 500s. Contained — the host application is unaffected because the package's route is isolated.
  • Route collision: the package's fixed path conflicts with an application route or catch-all, producing confusing 404s or shadowed endpoints.
  • Stale or divergent view: with route caching enabled, the page may reflect a different set than a fresh boot, misleading engineers debugging a routing issue.
  • Abandonment: no upstream fixes for a future Laravel version, forcing a fork.

Ramp-up — Very low. A Laravel-fluent engineer installs and configures it in under half an hour; the conceptual overhead is effectively zero because it mirrors a command they already know. The only knowledge worth institutionalizing is the access-control convention — who can reach the page and why — which should be documented next to the gate definition so it survives team turnover.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast