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

Wire Extender Laravel Package

wire-elements/wire-extender

Wire Extender lets you render Livewire components anywhere, even outside your Laravel app. Expose components through a secure API endpoint and mount them on external sites or separate services with the JavaScript client, keeping full interactivity without duplicating code.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Package: wire-elements/wire-extender — extends Livewire so components can be mounted/rendered outside the standard Livewire entry points (Blade views, Alpine-driven DOM, third-party markup), rather than a conventional Laravel utility.

Architecture fit: Good fit for Blade-first Laravel monoliths that already use Livewire and need components embedded in contexts Livewire does not natively reach (CMS-rendered markup, legacy Blade partials, Alpine-managed regions). Poor fit for API-only services, Inertia/Vue or React SPA front ends, or teams deliberately standardising on plain Blade + Alpine without Livewire. It is an additive layer, not an architectural commitment — low structural blast radius if adopted in a bounded area.

Integration feasibility: Low ceremony — Composer install, service provider auto-discovery, published config/asset step, and a script include in the layout. The real cost is not installation but the Livewire major-version coupling, which v2.0.4 makes explicit.

Technical risk (material, driven by this release): v2.0.4 removes Livewire v3 support. This is a patch release (2.0.3 → 2.0.4) that drops support for an entire upstream major, which is a semver violation by conventional standards. Consequences:

  • Any composer update resolving ^2.0 on a Livewire 3 application can pull in a version whose composer constraints (or runtime behaviour) no longer match the installed Livewire, producing hard failures at boot or at component render.
  • Teams on Livewire 3 must pin to 2.0.3 (or constrain <=2.0.3) deliberately; teams on Livewire 4 must be on >=2.0.4. There is no version range that serves both cleanly.
  • The package is community-maintained with a narrow contributor base; patch-level breaking changes suggest the maintainer treats the 2.x line as tracking the current Livewire major rather than as a stable compatibility contract. Plan for this pattern to recur at each Livewire major.

Key questions:

  1. What are the exact composer.json constraints on livewire/livewire in 2.0.4 — hard ^4.0 requirement, or a looser constraint with runtime-only divergence? This determines whether Composer protects us at all.
  2. Is there a documented support window: does 2.0.3 keep receiving security/bug fixes while Livewire 3 remains supported upstream?
  3. Does the release change any public PHP API, published config keys, or JS asset surface, or is the diff purely a compatibility drop? The changelog lists only the PR title.
  4. What is the maintainer's stated policy on breaking changes in patch releases, and is there a sponsor/commercial tier (Wire Elements has commercial offerings) that implies support SLAs?
  5. Which other Wire Elements packages in our dependency tree share the livewire constraint and would move in lockstep?

Integration Approach

Stack fit: Laravel 10/11/12 + Livewire 4 + Blade/Alpine, built through Vite. Confirm Laravel and PHP floor compatibility against the 2.0.4 composer.json before scoping work; the changelog does not state it.

Migration path:

  • Greenfield on Livewire 4: install ^2.0.4 directly, no migration cost.
  • Existing on Livewire 3: stay on 2.0.3 and pin explicitly (exact version or <2.0.4). Do not float. Treat the Livewire 4 upgrade as the gating event, then bump wire-extender in the same change.
  • Mixed estate: expect a period where different applications sit on different wire-extender versions. This is manageable but should be recorded so nobody "helpfully" runs a global composer update.

Compatibility: The dominant compatibility axis is the Livewire major, not Laravel. Secondary axes: Alpine version (both packages touch Alpine lifecycle), Vite asset pipeline (published JS must be rebuilt/re-emitted, not just copied), and sibling Wire Elements packages. Verify Livewire 4's component-mounting internals did not change in ways the extender's JS hooks depend on — "support removed" may mean "not yet ported" rather than "known broken," and the difference affects timeline.

Sequencing:

  1. Spike (small): in a branch, install 2.0.4 against Livewire 4, render one embedded component on a non-Livewire Blade page, confirm hydration and action round-trips. Verify the same page on 2.0.3/Livewire 3 as the control.
  2. Constrain: add explicit version pins to every application using the package, with a comment citing this release. This is the highest-value action and costs minutes.
  3. Upgrade Livewire major in a dedicated change with wire-extender held at 2.0.3 if still compatible, or bumped together if not.
  4. Regression pass focused narrowly on embedded/mounted components: initial render, subsequent requests, Alpine interop, asset loading order.
  5. Roll out per application; no cross-team coordination needed given the bounded surface.

Operational Impact

Maintenance: Low ongoing code maintenance, moderate ongoing version-watch burden. The package is small and stable in feature terms, but this release demonstrates that a routine dependency refresh can change its compatibility envelope. Mitigation is procedural, not technical: exact pins, Renovate/Dependabot configured to flag (not auto-merge) wire-extender and Livewire major transitions, and a changelog subscription. Budget a recurring line item per Livewire major cycle.

Support: Community/issue-tracker support with a small maintainer pool. No SLA. For a package this narrow, that is acceptable — the failure mode is "blocked on an upstream port," not "abandoned mid-incident." If embedded-component rendering becomes load-bearing for a revenue surface, consider whether the commercial Wire Elements tier changes the support calculus, and record the decision either way.

Scaling: Scaling characteristics are inherited from Livewire, not introduced by this package — each embedded component is a live component with its own payload and round-trips. The extender's specific cost is an additional JS layer and a per-page script include. At high traffic, watch page payload size and the number of independently-hydrating components per page. The package does not add server-side scaling concerns beyond what Livewire already imposes.

Failure modes:

  • Dependency drift (most likely): unpinned composer update pulls 2.0.4 onto a Livewire 3 app → boot or render failure, potentially in production if CI does not pin. Deterministic, loud, and fast to fix, but avoidable.
  • Asset drift: published JS not republished after upgrade → stale front-end behaviour that passes server-side tests. Add a smoke check.
  • Alpine lifecycle collision: duplicate initialisation on embedded components, manifesting as double-fired actions or lost state. Hard to catch in unit tests; needs a browser-level check.
  • Silent partial breakage after a Livewire minor: embedded contexts are less-travelled paths in Livewire's own test matrix, so edge regressions surface here first. Keep a persistent end-to-end test for the embedded case rather than relying on manual QA.

Ramp-up: Low for any developer already fluent in Livewire — the mental model is "Livewire, but mounted from somewhere unusual," and the API surface is small. The non-obvious cost is conceptual: developers must know why a component renders differently in an embedded context versus a normal Livewire page, or they will misdiagnose failures as Livewire bugs. A single short internal note plus one worked example in the codebase should be sufficient. Do not let this package spread beyond the specific pages that need it; ubiquity here converts a narrow dependency into a broad one without benefit.

Assessment basis: Derived from the v2.0.4 release notes only. The compatibility drop is stated but its composer-level enforcement, upstream API changes, and support policy are unverified — answers to the key questions above should be obtained before treating this as a settled evaluation.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core