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 Multistep Forms

Laravel Multistep Forms Laravel Package

bayareawebpro/laravel-multistep-forms

BayAreaWebPro Laravel Multistep Forms helps you build wizard-style Laravel forms with a fluent API, persistent state, validation, and Blade-friendly rendering, keeping multi-step form logic organized, reusable, and testable.

View on GitHub
Deep Wiki
Context7

Responsable Multistep Form Builder for Laravel

Frequently asked questions about Laravel Multistep Forms
What is bayareawebpro/laravel-multistep-forms used for?
It is a Blade-friendly multistep form builder for Laravel that lets you define wizard steps, validate each step, move back and forward, and keep partial submissions across requests. It is a presentation-layer convenience rather than a workflow engine, so it suits straightforward linear wizards such as onboarding, checkout, or application forms. Branching, conditional steps, and resuming abandoned flows after long gaps will need custom code on top of the package.
How do I install laravel-multistep-forms with Composer?
Run composer require bayareawebpro/laravel-multistep-forms and then publish the package's views and config as described in the repository README. Adoption is intentionally light: a Composer require plus publishing assets, with no migrations implied by the release notes. Expect a spike measured in hours rather than days, assuming your app is a conventional server-rendered Laravel MVC project.
Which Laravel and PHP versions does laravel-multistep-forms support?
The v1.3.2 release added a Laravel v13.x entry to the package's Composer constraints and CI matrix, which implies support for the majors listed there rather than any single version. Before pinning it, open the package's composer.json and confirm the exact require constraints and minimum PHP version, then run composer why-not against your locked Laravel version. The evaluation notes do not document a formal support policy, so treat the constraint file as the source of truth.
Release notes say the package supports Laravel 13.x, but that version is not generally available. Is that a typo?
Laravel 13.x is not a generally available framework release, so the v1.3.2 note is either a typo for the current major or an assertion of compatibility against a pre-release branch. Either way it warrants verification before you depend on it in production, because a CI matrix that tests an unreleased major tells you little about real compatibility. Check the exact constraint string in composer.json, the Laravel majors in the CI workflow, and the diff between v1.3.1 and v1.3.2 to see whether runtime code changed or only composer.json and workflow files.
How does laravel-multistep-forms persist form state between steps?
The package models partial submissions so values survive navigation between steps, which is what makes a multi-step wizard feel continuous rather than a series of disconnected forms. The evaluation notes flag that it does not ship an opinionated state machine, so server-side resumption after abandonment is your responsibility. If you rely on the package's own persistence layer for in-progress submissions, back it with your own storage and backups so a UI failure cannot strand user data.
Can I validate each step individually before moving to the next?
Yes, per-step validation is a core part of the design: each step definition carries its own rules so a user cannot advance until that step passes. This keeps validation rules close to the fields they guard instead of one monolithic ruleset for the whole wizard. Because it is a PHP and Blade package, you can test each step's rules with standard Laravel validation assertions rather than a browser.
Will it work with Blade, Tailwind, Bootstrap, Livewire, or Inertia?
The package is framework-native and imposes no frontend framework, so it slots into an existing server-rendered Blade app with Tailwind or Bootstrap without a JavaScript build change. If your product is Inertia with React or Vue, or a Livewire-heavy frontend, confirm whether the package exposes an integration path beyond its Blade views before committing, because a Blade-only wizard is awkward to embed in an SPA shell. There is no indication the release changed the view layer, so any limitation there carries over from earlier versions.
How do I test a multistep form built with this package?
Treat the wizard as HTTP endpoints: write feature tests that post each step, assert the validation errors for invalid input, and assert the redirect or render for valid input. Add a test for the back-and-resubmit path and for a refresh mid-flow, since those are where wizard state usually breaks. Run the package's own tests from a scratch branch if they are published, paired with composer why-not against your locked Laravel version to confirm the resolved dependency set.
What are the known limitations around the browser back button, page refresh, and multiple tabs?
The release notes give no detail on multi-tab, back-button, or refresh-mid-flow behaviour, so verify all three yourself in a spike before rollout. These are the failure modes that make wizard packages feel unreliable even when the happy path works, and they are typically where custom state handling becomes necessary. Write explicit tests for each scenario and document the expected behaviour for your team.
How does this compare with a Livewire wizard or a hand-rolled Laravel form, and is a single-maintainer package a risk?
A hand-rolled wizard or a Livewire component gives you full control over branching and state, but costs more upfront; this package trades that flexibility for a fluent step API, per-step validation, and Blade rendering out of the box. It is a single-maintainer package with a small ecosystem footprint and no evidence of corporate backing, and framework-compat bumps arriving in a patch release like 1.3.2 means the version number is not a reliable signal of scope. The blast radius is contained because form UI failures are visible and recoverable, but avoid a big-bang replacement of a flow touching money or account creation: run the new wizard on a parallel route behind a feature flag and cut over after real submissions.
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.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections