- How do I install the filament-otp-input package?
- Install it with Composer using the package name murillo-cardoso-by-hasan-ahani/filament-otp-input, then import the field class into your Filament form schema. Note that the Composer vendor namespace does not match the Unesc-PMP GitHub repository owner, so confirm provenance before adding it to a production project. There is no service provider configuration, migration or publishable config to run, which keeps the install footprint very small.
- Which Filament and Laravel versions does filament-otp-input support?
- The package is designed for Filament v3 panels running on Laravel 10 or 11 with Livewire 3. Before requiring it, check the composer.json constraint on filament/filament to see whether it is loose like ^3.0 or pinned to a specific minor. Filament ships breaking changes between majors, so an unmaintained field will likely fail on a v4 upgrade.
- Can I use this OTP field outside Filament, like in a Blade or Inertia frontend?
- No. This is a Filament form field that wraps OTP entry into a Livewire-compatible component used inside resources or custom panel pages. If your one-time-code UI lives in a customer-facing Blade or Inertia frontend outside a Filament panel, this package does not fit and you should build or pick a standalone input instead.
- Does filament-otp-input generate and verify OTP codes, or just render the input?
- It only renders the segmented input field. OTP generation, delivery, expiry, rate limiting, attempt lockout and constant-time comparison all remain your responsibility in application code. Treat it strictly as a UI component and never as an authentication control by itself.
- Does it support paste, autofill and mobile numeric keyboards?
- The package description advertises auto-advance between boxes, paste support and validation. It is not confirmed in the docs whether the input sets inputmode=numeric or autocomplete=one-time-code for mobile autofill, so verify this in the field's Blade view before relying on it. Segmented inputs frequently have gaps in paste handling and focus management, so test on real mobile devices.
- Is filament-otp-input safe to use for real two-factor authentication in production?
- Treat the code as unaudited, since the repository has zero stars, zero dependents and no visible community review. Read the field class and its Blade view to confirm the OTP value or phone number is not sent to any external endpoint and that JS and CSS assets are bundled rather than pulled from a CDN. Because the component only renders input, your own generation, expiry and rate-limiting logic is where the real security lives.
- Is filament-otp-input actively maintained?
- Signals are weak: the only release dates from November 2024, the repository has no stars or dependents, and the Composer namespace does not match the GitHub owner. That combination suggests high abandonment risk with nobody to patch it when Filament changes. If you adopt it, plan to vendor and fork the field into your own app or private packages directory rather than require it and forget it.
- How do I test a Filament OTP field in my Laravel test suite?
- You can exercise it with Livewire and Filament form testing helpers by filling the bound state property and asserting your validation rules fire. Whether the field binds to a single string property or splits into per-digit properties matters here, because per-digit binding leaks implementation details into your form schema. The package itself ships no visible test suite or CI, so you will be writing all coverage yourself.
- Is the Filament OTP input accessible for screen readers and keyboard users?
- Accessibility is unaudited, and segmented OTP inputs commonly have focus management and screen reader announcement problems when the digit count changes. Since this is an auth surface, manually verify keyboard navigation, focus order, error announcement and RTL rendering before shipping. If it falls short, patching the Blade view in a forked copy is usually faster than waiting for an upstream fix.
- What are the alternatives if filament-otp-input is abandoned?
- The most practical alternative is copying the field class into app/Filament/Forms/Components and owning it directly, which is cheap because it is a leaf dependency with no service provider, migrations or queue footprint. You can also build a small custom Filament Field around a single Livewire string property, which composes more cleanly with validation than per-digit state. Other community OTP packages exist, but evaluate them on the same maintenance and asset-hosting criteria.