Product Decisions This Supports
- Build vs. buy for multi-step flows.
ycs77/laravel-wizard is a server-driven wizard/step-form package for Laravel. It directly informs the "build vs. buy" call for any guided flow: onboarding, KYC/verification, checkout, quote/application funnels, multi-part surveys, and setup assistants. Adopting it replaces bespoke step-controller/state code with a small, conventional dependency.
- Roadmap sequencing for form-heavy workflows. If the roadmap contains more than one guided flow within a 2–3 quarter window, the package's value compounds: one integration pattern, reused across flows, instead of per-feature wizard scaffolding.
- v4.5.0 — redirects that carry parameters. This release lets a step redirect while passing parameters along. Product-relevant because it makes these cheap to support without custom code:
- Deep links into a mid-flow step (email "resume your application" links landing on the right step with context).
- Attribution and campaign context surviving step transitions (UTM/referral/source params carried through the funnel rather than lost at the first redirect).
- Return-to-intent flows (send a user to sign-in or an upsell and bring them back to the exact step and state they left).
- Analytics instrumentation at step boundaries, since step transitions now have a natural place to attach identifiers.
This is an incremental, non-breaking capability — it reduces the number of flows where we'd otherwise write custom redirect/state plumbing.
- Where it changes a decision: flows previously deprioritized because preserving entry context across steps required custom work are now cheaper to scope. Revisit any funnel item deferred on "too much plumbing for the value."
- Where it does not change a decision: it does not add branching logic, persistence/audit guarantees, or client-side rendering. Decisions that hinge on those still point to build-or-different-tool.
When to Consider This Package
Consider adoption when:
- The stack is Laravel (v10/11-era) and the team is comfortable with server-rendered, session-backed flows.
- The flow is linear or lightly branched, roughly 3–10 steps, with per-step server-side validation.
- Session-scoped state is acceptable — abandoned flows don't need durable, queryable, per-step persistence for reporting or compliance.
- You want one consistent wizard abstraction across several features rather than repeated one-off implementations.
- The team is small and would rather own a thin integration than a wizard framework.
- You specifically want context-preserving redirects (v4.5.0) for resume links or attribution without writing it yourself.
Look elsewhere when:
- The experience is SPA/Inertia/Livewire/React-driven with client-side step transitions and optimistic UI — a server-redirect wizard fights that model.
- The flow is a genuine state machine with complex conditional branching, back-navigation with mutation, or parallel paths.
- You need auditable, resumable-across-devices, queryable progress (regulated onboarding, long B2B applications) — you want explicit persistence models, not session state.
- Requirements include multi-tenant configurability of steps by non-engineers; this is a developer-facing package, not a form builder.
- Supply-chain risk tolerance is low. Single-maintainer package, v4 major line, small ecosystem. Mitigate by pinning the version, wrapping it behind an internal interface, and keeping the exit cost low — or skip it if that overhead outweighs the savings.
How to Pitch It (Stakeholders)
For executives: This is a small, free Laravel package that gives us multi-step form flows — onboarding, applications, checkout-style funnels — out of the box instead of building and maintaining that scaffolding ourselves. The latest release (v4.5.0) adds the ability to carry context through step redirects, which means resume links and marketing attribution survive the funnel rather than dying at the first hop. Net effect: faster delivery on a recurring category of work, less bespoke code to own, and one fewer reason to defer funnel improvements. Risk is modest but real — it's a single-maintainer dependency — so we'd pin the version and keep it behind a thin internal wrapper, which caps the cost of replacing it later. Recommendation: adopt for the next guided-flow feature as a pilot, measure the time saved versus hand-rolling, then standardize if it holds up.
For engineering: Server-side wizard abstraction for Laravel: steps, per-step validation, session-backed progression, conventional redirects. v4.5.0 is additive and non-breaking — redirects can now pass parameters, so step transitions can carry identifiers, return paths, or campaign context without custom middleware. Integration is shallow, but treat it as an external boundary: pin the exact version, isolate usage behind our own service/interface, add a smoke test per flow, and don't let session shape become an implicit contract across the codebase. If we later move to Inertia or Livewire, or need durable per-step persistence, the wrapper is the seam where we swap it out.