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 Routes Laravel Package

bluedragon/laravel-routes

A Laravel package for working with your application's routes, offering a simple way to inspect and manage route definitions within your Laravel projects.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping: eliminating hardcoded URLs in the front end. The core capability — generating named-route URLs from Laravel's route table and shipping them to JavaScript — is a plumbing decision, not a product differentiator. It supports shipping SPA/Inertia/Livewire features faster and reduces a recurring class of bugs (route renamed on the backend, 404s in production, broken links after a refactor).
  • Build vs. buy vs. adopt. The real decision this package surfaces is not "should we expose routes to JS" (almost certainly yes for any app with non-trivial client-side navigation) but "which implementation do we standardize on." With 0 stars, 0 dependents, and a single-maintainer GitLab origin, this is an adopt-only-if-you-accept-the-maintenance-ownership decision — treat it as a lightweight in-house dependency, not a community-backed one.
  • Frontend/backend contract ownership. Publishing routes formalizes a contract between the Laravel route table and the JS layer. That's a roadmap lever: it lets backend and frontend teams work in parallel and makes route renames a non-event, which matters when you're planning a URL scheme change (localization prefixes, versioned APIs, multi-tenant subdomains).
  • Security review as a gate, not an afterthought. Any package that serializes your route table into a client-visible asset creates a route-enumeration surface. This drives a decision: do we expose all named routes or an allowlist? Admin/internal routes leaking into a JS payload is a finding waiting to happen, so this needs an explicit filtering decision before adoption.
  • Use cases where it earns its place: multi-tenant or locale-prefixed URLs that must stay correct client-side; signed/temporary URL generation for downloads; feature-flagged frontends where a route's existence changes per environment; incremental modernization of a Blade app without a full API layer.
  • Use cases where it does not: public-facing marketing sites with static links, apps with a formal REST/GraphQL API where the front end shouldn't know about Laravel routing at all, or teams already on a mature incumbent.

When to Consider This Package

Consider it when:

  • You're on Laravel and want a minimal, vendorable implementation — small surface area, no build-tool plugin, no framework lock-in beyond Blade + a service provider — that you're prepared to read in full, fork, and patch yourself.
  • Your route set is small and stable, and you need a deliberately narrow allowlist of routes exposed to JS rather than a broad "publish everything" default.
  • You have a specific behavioral requirement the incumbents don't meet (e.g., custom filtering semantics, integration with an internal route-registry convention, or output shaped for a particular front-end helper).
  • You're prototyping and want the concept validated in an afternoon before committing to a heavier dependency.

Look elsewhere when — which is the default answer here:

  • You want the community standard. For essentially all standard cases, Ziggy (tighten/ziggy) is the incumbent: first-party-adjacent, extensively documented, widely deployed, and maintained by an organization rather than an individual. Zero stars and zero dependents means no production evidence — you'd be the first meaningful adopter, and every bug is yours to find.
  • You need a support contract or SLA. There is none implied. If this ships into a revenue path, budget for an internal owner.
  • You can't audit it. A package with no downstream users has had no adversarial review. Read it end to end; if your team won't, don't ship it.
  • You want a route-name contract anyway. If your client and server are separate concerns, a typed API client (OpenAPI-generated, or Laravel Wayfinder-style generation) may be a better long-term fit than a URL-lookup table.
  • You can hand-roll it. A @routes Blade directive emitting route() output as JSON is roughly 30 lines. If your need is that narrow, the dependency may cost more than it saves.

Adoption preconditions (all should be true):

  1. Named-route coverage is high enough that the JS map is meaningful.
  2. An allowlist/filter policy for exposed routes is defined and enforced in code, not convention.
  3. An owner is named and can patch the package from a fork or VCS path repository.
  4. A pinned-version strategy exists, since you can't rely on timely upstream releases.

How to Pitch It (Stakeholders)

For executives: This is a small utility that keeps front-end URLs in sync with the backend, so renaming or restructuring a URL stops breaking pages. The concept is standard practice in Laravel. This specific package, however, is unproven — no community adoption, single maintainer — so it isn't a "buy" decision, it's a "build/own" decision in disguise. Recommendation: adopt the pattern for the SPA workstream, but do so via the established option (Ziggy) unless engineering has a specific reason to prefer a vendored fork, in which case we accept ongoing maintenance cost as the price of control. Either way, the exposure of internal routes to the client must pass a security review before release.

For engineering: Adopt the pattern, not necessarily the package. Requirements: (1) allowlist routes rather than publishing the full table — treat route names and URIs as client-visible data; (2) generate the route map at build or cache-warm time, not per request, to avoid a per-request Route::getRoutes() serialization cost; (3) keep the output versioned with your asset pipeline so a stale cache can't produce wrong URLs; (4) wrap the package behind a thin internal adapter — a RoutePublisher interface with one implementation — so switching to Ziggy or a hand-rolled directive is a one-file change rather than a codebase-wide migration. Baseline comparison before committing: evaluate Ziggy against this package on bundle size, filtering capabilities, TypeScript support, and maintenance cadence; pick Ziggy unless it fails a hard requirement. If we do adopt this package, fork it, pin it, and own it.

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.
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
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log