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

pixelworxio/livewire-workflows

Build multi-step Livewire workflows in Laravel with zero boilerplate. Define onboarding, checkouts, and surveys using an expressive DSL and get automatic route registration, guard-based navigation, state persistence, and Livewire 4.x support.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on workflow plumbing. Any roadmap item shaped like "guided multi-step journey" (onboarding, KYC/verification, checkout, application intake, survey, employee provisioning) carries the same hidden cost: route definitions, step-ordering logic, resume/back behavior, and per-user progress state. This package converts that recurring infrastructure line item into a ~1-day integration, so the decision becomes "do we own this forever or take a dependency?" rather than "how many sprints does this cost?"
  • Sizing and sequencing gated-onboarding features. The guard model (passes() = true → skip step, false → show step) makes "conditional step" a first-class product primitive instead of a branching flowchart. This lets you ship a long onboarding as one workflow and add/drop steps per segment (verified vs. unverified, business vs. consumer) without re-architecting navigation — useful for A/B tests and progressive rollout of new required steps.
  • Prioritizing abandonment-recovery work. Signed resumeUrlFor() links plus WorkflowAdvanced/WorkflowCompleted events give you the two things you need to justify investment in re-engagement: a deep link back into the exact incomplete step, and an event stream for funnel analytics. If your funnel data shows drop-off at step 3, this package makes the recovery experiment cheap.
  • Scoping compliance and data-handling requirements. #[WorkflowState(encrypt: true)] and a swappable state repository (session / Eloquent / null) mean "where does partial checkout data live, and how long do we keep it?" becomes a config decision you can make with legal/security early, not a refactor later.
  • De-risking Livewire version strategy. Explicit support for Laravel 11/12/13 and Livewire 3.x and 4.x means adopting it doesn't pin your framework upgrade roadmap — relevant if you're planning a Livewire 4 migration.
  • Deciding where workflow logic lives. Codifying journeys in routes/workflows.php (with make:workflow, workflows:scan, workflows:audit) makes the flow diagram a reviewable artifact in code review, rather than tribal knowledge in a Figma file. That's a real lever on onboarding new engineers and on QA test-plan generation.

When to Consider This Package

Consider it when:

  • You have two or more genuine linear-with-skips journeys and are about to write the same session-juggling, "redirect to first incomplete step" logic a second time.
  • Your team is on Laravel 11–13 + Livewire and comfortable with PHP 8 attributes (#[WorkflowStep], #[WorkflowName], #[WorkflowState]) — the ergonomics depend on them.
  • Journey steps are naturally gated by a boolean-ish condition you can express as a guard (email verified, address present, training done). This is the package's sweet spot and its main conceptual constraint.
  • You need auditable funnel telemetry and want events for free rather than instrumenting each step by hand.
  • You want resume links for abandonment email/notification campaigns, and are willing to run the Eloquent state repository (session storage can't support signed resume URLs).

Look elsewhere when:

  • Ecosystem risk tolerance is low. 91 stars, zero dependents, and a single-org namespace is a real signal: this is early. If the journey is revenue-critical (primary checkout) or regulated, a solo-maintained package is a hard sell to security review. Mitigation exists — MIT license, so you can vendor/fork — but budget for the fork as the honest cost.
  • Your flow is a DAG, not a line. Guards decide skip/show in order; there's no native branching into divergent parallel tracks or merge points. Complex approval chains with re-entry and rejection loops will fight the model.
  • You need non-Livewire steps. Everything hinges on Livewire components; a journey with legacy Blade controllers, third-party hosted pages (Stripe, DocuSign), or async human steps (manual review) sits outside the guard pipeline and will fragment the experience.
  • Multi-tenant / high-volume state is a hard requirement. The Eloquent repository is a generic key-value store; you'd be evaluating its schema against your own partitioning, retention, and PII policies. Do that due diligence before adopting, not after.
  • You only have one flow. Below roughly two journeys, hand-rolling is cheaper than the dependency, the migration, and the conceptual load of positive-semantics guards (a genuinely counterintuitive inversion — passes() = true means skip this step).
  • Heavy customization is already in flight. If you've built your own wizard abstraction, migration cost is real and the package's opinionated DSL will only partially replace it.

Adoption gate for a pilot: pick one non-critical, non-regulated journey (employee onboarding or a preferences flow, not checkout), run it with the Eloquent repository, and confirm two things — that your team reads guards correctly without a doc lookup, and that the events give you funnel data you'd actually act on.

How to Pitch It (Stakeholders)

For executives (one paragraph): Every product we ship seems to grow a guided, multi-step setup experience — onboarding, verification, checkout, application intake. Today each one is bespoke plumbing: routing, step order, back buttons, progress, "where did this user stop." This package is a small, MIT-licensed Laravel library that makes that plumbing declarative — about a page of configuration instead of weeks of engineering — and hands us funnel analytics, abandonment resume links, and encrypted partial-state storage as defaults. The trade-off is maturity: it's early (small community, no downstream dependents), so we're proposing a contained pilot on one internal-facing journey rather than betting a revenue-critical flow on it. Upside is measured in saved engineering weeks per journey and faster experimentation on where users drop off; downside is bounded because the license lets us fork if the maintainer stalls.

For engineering: Expressive DSL in routes/workflows.php with auto-registered routes (including dynamic params and route model binding), guard-based navigation via Laravel's Pipeline, and a InteractsWithWorkflows trait for Livewire components. State persistence is a repository-pattern abstraction — session, Eloquent, or null — swappable via config, with #[WorkflowState] attributes handling auto-hydration, namespacing, and encryption. Progress API, lifecycle events, and make:workflow / make:workflow-guard / workflows:scan / workflows:audit generators cover scaffolding and CI validation. Requires PHP 8.3+, Laravel 11–13, Livewire 3 or 4; tested with Pest, PHPStan level 2, Pint. Two caveats to plan around: guard semantics are inverted (passes() = true skips the step — enforce this in code review), and resume URLs require the Eloquent repository plus a set APP_KEY. Treat the dependency as forkable: pin the version, read the changelog on upgrade, and keep our workflow definitions thin enough that swapping the engine is a contained change.

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.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table