icetalker/filament-stepper
A stepper component for Filament forms that turns long forms into guided, multi-step wizards. Define steps with labels, icons, and descriptions, then let users move forward and back through a progress indicator—ideal for onboarding, checkout, and settings flows.
Architecture fit: Narrow but clean. This is a Filament form field, not a general Laravel number-input library. It fits only if the application already uses Filament for admin or internal forms. It should remain a presentation-layer component: server-side validation, persistence, and business rules must stay in application code. Low coupling and small surface area make it easy to isolate behind a project-specific field wrapper if adopted.
Integration feasibility: High for a Filament codebase. Composer installation, service-provider auto-discovery, and use as a form schema field are typical. The real work is compatibility verification: Filament major version, Livewire version, PHP/Laravel constraints, and whether the stepper supports required behaviors such as min/max, step size, decimal precision, disabled/readonly state, reactive fields, and validation integration. No database migration or backend contract is implied.
Technical risk: Implementation risk is low; lifecycle risk is moderate. With 13 stars and likely a small maintainer base, community support and long-term maintenance are thin. The MIT license and small code footprint mitigate abandonment risk because the component can be forked or replaced with a native numeric input. The dated release is recent, but version support must be verified rather than assumed. Main technical risks are Filament/Livewire breaking changes, accessibility gaps, locale decimal-separator handling, and Livewire state synchronization on rapid stepper clicks.
Key questions:
min, max, step, decimal precision, nullable values, and server-side validation cleanly?Recommendation: Conditional pilot. Adopt only inside an existing Filament application where a stepper improves numeric input UX. Do not introduce Filament solely for this package. Wrap usage in a local field class or Blade partial to limit replacement cost.
Stack fit: Laravel + Filament only. If the product uses Filament v3/v4 for internal tools or admin workflows, this is a low-friction UI enhancement. If the product uses plain Blade, Livewire without Filament, or a separate front end, the package is not applicable.
Migration path: Add the package in a branch or staging environment, replace one existing numeric field with the stepper component, and keep existing validation rules unchanged. No data migration is expected because the field should map to the same underlying numeric attribute. If the component does not meet validation or state requirements, fall back to Filament’s native numeric input and keep the wrapper interface stable.
Compatibility: Pin the package version and verify the full matrix: PHP version, Laravel version, Filament major version, Livewire version, and asset build pipeline. Test in the same environment as production, including any custom Filament theme. Confirm that form state serialization and validation messages behave identically to the existing field.
Sequencing:
Maintenance: Low day-to-day maintenance but non-zero dependency management. Pin versions, review release notes, and keep the wrapper isolated. Because the package is small and MIT-licensed, forking is viable if the maintainer becomes inactive. Avoid spreading direct references throughout the codebase.
Support: Internal support should be minimal for Filament-proficient developers. External community support is limited by the small user base, so the team should own documentation and tests. Escalation path should be: wrapper fix, fork, or replace with native numeric input.
Scaling: No backend scaling impact. The component is a form UI control; it should not add server round trips per click unless explicitly configured with reactive fields. Front-end asset size is likely small. The main scaling concern is consistency across many forms, which the wrapper and usage guidelines address.
Failure modes: Filament or Livewire major-version incompatibility; asset publishing or theme conflicts; numeric edge cases such as floats, locale decimal separators, and large values; Livewire state desynchronization on rapid clicks; accessibility non-compliance; package abandonment. Mitigations: version pinning, wrapper isolation, automated form tests, accessibility review, and a documented native-input fallback.
Ramp-up: Low for developers already familiar with Filament form schemas. Expect roughly half a day for a spike and compatibility check, plus test and documentation time. Developers unfamiliar with Filament custom fields will need a short onboarding session; teams not using Filament should not ramp up on this package.
How can I help you explore Laravel packages today?