tuxones/filament-js-money-field
A Filament form field for Laravel apps that simplifies monetary value input and formatting using JavaScript Money, with locale-aware display and validation for clean money handling in admin panels.
This is an initial assessment for tuxones/filament-js-money-field, a Filament form-field package for money input backed by js-money. The v0.1.7 release is a narrow bug fix: it prevents an error when the underlying model is null during getColumnType. There are no new features, deprecations, or breaking changes indicated in the release notes.
Architecture fit: Suitable only where the application already uses Filament and needs a money-oriented form field. It is a UI-layer package, not a domain/payment abstraction, so it should not be treated as a source of truth for monetary calculations, rounding policy, or currency rules. The js-money dependency implies client-side formatting/behavior that must align with server-side monetary handling.
Integration feasibility: Likely straightforward for a small Filament admin panel: install via Composer, register/use the field in Filament forms, and verify asset publishing/building as required by the package. The null-model fix reduces one class of edge-case failures, but it also confirms the package is still maturing and exercising defensive paths in real usage.
Technical risk: Moderate for production use because the package is pre-1.0 (v0.1.x), has a narrow release history, and appears maintainer-light. The main risks are Filament major-version compatibility, frontend asset/JS dependency behavior, monetary formatting mismatches, and upgrade churn. This patch itself is low risk.
Key questions: Which Filament versions are supported and tested? Which js-money and PHP/Laravel versions are supported? Does the field submit normalized minor units or locale-formatted values? How are currencies, rounding, and null/empty states handled server-side? Are assets published, compiled, or CDN-loaded? What is the maintainer/support model and release cadence?
Stack fit: Best fit is a Laravel application already using Filament for admin or internal tooling, with a clear server-side money representation such as integer minor units plus ISO currency code. Poor fit for public checkout/payment flows, multi-currency pricing engines, or systems without Filament.
Migration path: Adopt incrementally in one non-critical Filament form first. Do not replace existing monetary inputs wholesale. Validate submitted payloads against the existing domain model before widening usage. Because this is v0.1.7 and no prior assessment exists, treat adoption as a pilot rather than a standard.
Compatibility: Pin the package version and test against the exact Laravel, PHP, Filament, and js-money versions in use. Confirm Filament asset registration works in the target deployment model. The v0.1.7 null-model fix should be included, but it does not eliminate the need for compatibility testing.
Sequencing: 1) Confirm supported version matrix and license. 2) Add package in a branch and build a single form field proof of concept. 3) Verify browser behavior, form state hydration/dehydration, validation, and server-side normalization. 4) Add regression tests around null models, empty values, currency formatting, and submission payloads. 5) Roll out to one internal admin form, then reassess before broader use.
Maintenance: Expect periodic compatibility work as Filament and frontend dependencies evolve. Pre-1.0 packages can change behavior in minor releases, so version pinning and a small internal wrapper around the field are advisable. Avoid spreading direct usage across many forms until the package stabilizes.
Support: Support likely depends on community/maintainer availability rather than a commercial SLA. Teams should be prepared to fork or replace the field if the package stalls. The v0.1.7 fix is a positive sign of maintenance but does not establish long-term support depth.
Scaling: The package affects form rendering and client-side money input behavior, not core transaction throughput. Scalability risk is mainly operational consistency: many forms using inconsistent currency/rounding behavior, asset delivery issues, or frontend regressions. Standardize money handling server-side and treat the field as presentation only.
Failure modes: Null or missing model context (partially addressed in v0.1.7), incompatible Filament versions, missing or stale frontend assets, locale/currency formatting mismatches, and malformed or ambiguous submitted values. Empty/null states and non-money columns should be explicitly tested.
Ramp-up: Low for Filament developers; moderate for teams without Filament experience. The main learning is not the field API but the money domain contract: currency codes, minor units, rounding, validation, and how the browser value maps to persisted data. Provide a short internal usage note and a reference implementation before broader adoption.
How can I help you explore Laravel packages today?