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

Livewire Urls Laravel Package

ralphjsmit/livewire-urls

ralphjsmit/livewire-urls lets you use Laravel's route() helper inside Livewire components, generating URLs from named routes and parameters directly in your component classes. URLs can stay in sync with reactive properties and update automatically as state changes, with no hardcoded paths or Blade w...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Deep-linkable product state — the core PM win. Filters, search terms, active tabs, sort order, and pagination are the state users most want to send to a colleague. This package (via the #[Url] attribute) syncs public Livewire properties to the query string with two-way binding, so a filtered report or a specific tab becomes a URL you can paste into Slack. The product decision it enables is: for each piece of page state, does it belong in the URL? Today that question is often answered "no" by default because it costs engineering time; this makes "yes" cheap.

Support, QA, and bug reporting get cheaper. A customer can send the exact URL of the broken view rather than "go to Reports, then filter by X, then click the second tab." Every support ticket that currently requires a reproduction call is a cost line; URL-persisted state removes a meaningful fraction of them. This is a real, measurable operational saving that rarely appears in feature roadmaps but shows up in support headcount and time-to-resolution.

Notification and email deep links. Any email, digest, or in-app notification that says "3 new items in your saved view" needs a destination that actually reproduces the view. Without URL state, the link lands on a generic page and the user re-does the filtering manually. This directly affects activation and retention metrics on any notification-driven loop.

Refresh and back-button safety. Livewire state that is not in the URL is lost on refresh and behaves badly with browser history. Users who lose a configured dashboard to an accidental F5 file it as a bug. This package converts a class of "works but feels broken" complaints into a non-issue, which is a satisfaction/reliability win rather than a feature.

Analytics and campaign attribution. Query-string state is what analytics tooling can actually read. If saved views and filters live in the URL, you can measure which filters are used, which views get shared, and which campaign links land on which pre-filtered surfaces. State hidden in component memory is invisible to your analytics stack.

A standards decision you should make once, not per feature. The genuinely valuable PM output here is not adopting a package but writing down a convention: which state is URL-bound (filters, tabs, pagination, search) and which is deliberately not (transient form drafts, modal open/close, draft content). Without that note, half the app will be shareable and half won't, and the inconsistency will look like a bug. Adopt the package, then publish the convention.

Build vs buy — the honest math, and a caution. The underlying capability is #[Url] binding, which Livewire itself has shipped natively for some time; this package's own description reads as a thin convenience layer over that, plus previous/current URL helpers. Before treating it as a dependency, verify what you get beyond the framework baseline. If the answer is "the framework already does this," the correct decision is to adopt the pattern and skip the package — cheaper, zero bus factor, one less thing in the lockfile. If it adds real value on your installed Livewire version (older line, or the previous/current URL helpers matter for redirect-after-login and return-to flows), then buying is justified by edge-case maintenance, not by the code volume.

A note on the prior drafts in this evaluation set. Earlier material in this bundle describes the package as registering Livewire components directly as routes (controller replacement, model binding, middleware). Nothing in the supplied package description supports that — the description is squarely about query-string state sync. If someone on the team is pitching this as a routing package, stop them: that is a different package and a different (larger) risk profile. Treat route-to-component registration as out of scope for this decision.

Decision this unblocks. Whether shareable, bookmarkable, refresh-safe page state is a product-wide standard (with a written convention and a small amount of per-page work) or a per-feature nice-to-have. Pick the standard. It's a one-sprint, low-cost change that pays back on support volume and notification click-through, and it is reversible.

When to Consider This Package

Strong fit — adopt with confidence when:

  • Your app is Livewire-first and the screens that carry state are full-page components (dashboards, tables, reports, settings, multi-step wizards).
  • The installed Livewire version does not already give you the behaviour you need. This is the first thing to check. If core #[Url] covers your cases, adopt the convention and skip the dependency.
  • You have stateful list/report/dashboard surfaces where filtering and sorting are routine user behaviour — the more of these you have, the better the payback.
  • You rely on email, notification, or in-app deep links into filtered views, or you plan to.
  • Support load from "I can't reproduce it" tickets is a known cost you want to reduce.
  • You are comfortable pinning the version, committing the lockfile, and wrapping usage in one thin internal helper so a future patch or a fork is a single-file change.

Consider, with mitigation:

  • Mid-migration between Laravel or Livewire majors. The 1.7.0 entry is "Laravel 13 support" with no stated CI matrix. Confirm whether the constraint was widened (^12|^13) or swapped (^13), and whether the PHP floor moved. Sequence it after the framework upgrade is green — never in the same change — so you can attribute failures.
  • Sensitive state in URLs. Query strings land in browser history, server logs, referrer headers, and shared links. Decide explicitly that no PII, no identifiers beyond opaque ones, and no authorization-bearing values go into URL-bound properties. This is a product/privacy decision, not just an engineering one, and it needs to be in the convention note.
  • SEO expectations creeping in. "Shareable URLs" is not "SEO." Sitemaps, canonicals, structured data, meta management, and crawl/SSR behaviour are all outside this package's scope. Don't let a shareable-URL win get reported upward as an SEO win.
  • Multiple teams depending on it. At 81 stars and zero dependents, this is community OSS with a single apparent maintainer. That's fine for one team with a fork plan; it's a governance conversation for three.

Look elsewhere — do not adopt when:

  • The framework already does it. If your Livewire version supports #[Url] on the properties you care about, the package is pure dependency overhead. Write the convention, skip the package.
  • The front end is Inertia, a JS SPA, or headless/API-first, where URL state is handled by your router and store.
  • You need URL state to survive across very large or complex object graphs (nested arrays, unsaved models). Query strings are a poor fit and you'll fight serialization.
  • You need a vendor SLA, a published support window, or a funded maintainer. Nothing here supplies that. The MIT license is your real safety net — plan to fork rather than to escalate.
  • Your governance scorecard gates on adoption breadth (stars, dependents, download volume). Zero dependents means no one has validated this in production but you; vendor it deliberately rather than arguing the metrics.
  • Sensitive data would end up in query strings and you can't cleanly separate it from the shareable state.

Gating questions to answer before you build roadmap commitments on it: Does your installed Livewire version already provide #[Url] binding? Was the Laravel 13 constraint widened or swapped, and did the PHP floor move? Which specific properties does the package sync, and does it handle arrays/booleans the way your filters need? What's the release cadence and contributor count over the last twelve months? Is the target framework version in CI and green?

How to Pitch It (Stakeholders)

To executives — one paragraph: A meaningful share of our pages hold user state — filters, search terms, tabs, sort order, page number — that currently vanishes on refresh and can't be sent to anyone. This MIT-licensed package makes that state live in the URL, so views become shareable, bookmarkable, and refresh-safe, notification and email links can land users on exactly the view they were told about, and support can reproduce issues from a pasted URL instead of a phone call. The cost is near zero and the change is reversible in an afternoon. The honest caveat is that it's a small, single-maintainer open-source project, and part of what it does may already ship in our framework — so the trial starts with a half-day check against the baseline, then a one-sprint pilot on one surface. Ask: approve a one-sprint trial, with a go/no-go on two measures — reduction in state-related support tickets, and click-through on notification deep links.

To engineering leadership — the substance:

  • What it is: a Livewire property-to-query-string binding layer (#[Url] attribute) with automatic two-way sync, plus previous/current URL helpers. It does not touch routing, middleware, or the request pipeline.
  • Verify before you build: confirm what this gives us over core Livewire's #[Url]. If the answer is "not much on our version," the recommendation changes from adopt the package to adopt the pattern — and we save a dependency at no cost to the product.
  • Why it's low-risk to try: the integration surface is an attribute on public properties plus a service provider. Failure modes are loud (Composer resolution, boot errors) rather than silent, and rollback is a one-line revert plus removing attributes.
  • Why it isn't zero-risk to depend on: 81 stars, zero dependents, apparent single maintainer, no published support window. It is being actively tended — the Laravel 13 release is a positive signal — but concentration risk is real and unhedged by ecosystem validation.
  • The mitigation is the recommendation: pin the version, commit the lockfile, wrap usage behind one internal convention/helper, and record the version and rationale in the dependency register. That turns the bus-factor concern into a one-file change.
  • Two engineering rules to write down now: (1) no PII, secrets, or authorization-bearing values in URL-bound properties; (2) an explicit list of which state is URL-bound and which deliberately isn't, published in the engineering conventions so the app doesn't end up half-shareable.
  • Sequencing rule: if a Laravel upgrade is in flight, do the framework first, get the suite green, then evaluate the package. Confirm the 1.7.0 constraint was widened rather than swapped — if swapped, this package joins the framework upgrade plan as an explicit dependency rather than blocking it.
  • Discard the routing framing. Earlier discussion positioned this as replacing controllers with component routes. The package description doesn't support that. If we want that capability, it's a separate evaluation with a materially higher architectural stakes.

One-line framing for the steering update: a cheap, reversible win that makes page state shareable and support-friendly, with a known and easily-hedged single-maintainer risk — worth a bounded trial, and worth confirming first that our framework doesn't already give us most of 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.
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
xeviant/laravel-paystack
gorilladash/laravel-website-sdk