asignua/filament-translatable-fields
Filament Translatable Fields adds locale-aware form fields and table columns to Filament resources, making it easy to edit, display, and manage multilingual content in your admin panel without writing custom UI for every language.
No prior assessment exists; this evaluation is based on the v1.0.2 release notes. The package appears to be a Laravel/Filament extension for translatable fields across forms, tables, infolists, and relation managers. v1.0.2 is a patch release focused on correctness in nested and relation contexts. No explicit breaking changes are listed.
Architecture fit: Fits Laravel applications already using Filament for admin/back-office. It integrates at the form component, table column, infolist entry, resource, and relation-manager layers. The release notes reference Repeater/Builder nesting, RelationManager/ManageRelatedRecords, rich editors, JSON/array state, and locale-aware validation—signals that it is designed for real Filament resource architectures rather than simple standalone forms.
Integration feasibility: Likely installable via Composer and registered as a Filament plugin or used through traits/components. Teams can adopt it incrementally on new or existing translatable resources. The main integration work is defining locales, mapping translatable attributes, and validating required field types—especially rich editors. The v1.0.2 fixes reduce the risk of silent validation failures and cross-item context bleed, improving feasibility for complex resources.
Technical risk: Medium. The package depends on Filament internals and rich-editor behavior. The fixes show that nested Repeater/Builder and RelationManager contexts are non-trivial. v1.0.2 corrects a TypeError for array-backed infolist/table state and a translatableModel() failure in relation pages, which suggests earlier versions had sharp edges in less common but important configurations. The composer description cleanup is low risk and improves expectation management by removing a promised chosen-locale API that does not exist.
Key questions:
requiredAny() and empty-state detection?spatie/laravel-translatable, JSON columns, or a custom schema?Stack fit: Best fit is a Laravel app on a Filament version explicitly supported by the package. Teams already using Filament resources, relation managers, and infolists can adopt it with minimal architectural change. It is less suitable if the admin layer is not Filament or if the team cannot upgrade Filament to a supported version.
Migration path: Start with a single low-risk resource, preferably a simple translatable form with a Tiptap/rich-editor field and a table column. Then expand to a Repeater/Builder and a RelationManager only after confirming the v1.0.2 fixes in staging. For existing custom translatable fields, migrate one field group at a time and compare validation behavior, especially empty-language handling.
Compatibility: Confirm supported PHP, Laravel, Filament, and editor versions before adoption. Because v1.0.2 is a patch release with bug fixes and no stated breaking changes, it should be a low-friction upgrade from v1.0.x, but teams should still run regression tests around required-field validation, nested repeaters, relation managers, and array-state infolists/tables.
Sequencing:
Maintenance: Low to moderate. The package is small in surface area but tied to Filament internals, so maintenance includes tracking Filament releases and regression-testing nested form contexts. v1.0.2 reduces known correctness debt, but the nature of the fixes suggests ongoing attention to edge cases.
Support: Depends on the package's license and maintainer responsiveness. The release notes are specific and user-facing, which is a positive support signal. Teams should confirm whether support is community-only or commercial and whether there is a documented issue tracker.
Scaling: Likely fine for typical admin-panel usage. The main scaling concern is not traffic but schema and form complexity: many locales, many translatable fields, and deeply nested repeaters can increase validation and state-management complexity. Test with realistic locale counts and nested structures before broad rollout.
Failure modes: Historical failure modes addressed in v1.0.2 include empty rich-editor documents passing requiredAny(), Repeater/Builder items sharing the wrong translation context, TranslatableEntry/TranslatableColumn reading parent state or throwing TypeError on array state, and translatableModel() failing in RelationManager/ManageRelatedRecords. Teams should regression-test these exact scenarios. Other likely failure modes are Filament version drift, unsupported editor field types, and misconfigured locale mappings.
Ramp-up: Low for developers familiar with Filament and Laravel. New teams need documentation on locale setup, model translation storage, supported field types, and validation semantics. A short internal proof-of-concept with one rich-text field, one nested repeater, and one relation manager should be enough to establish whether the package fits the team's patterns.
How can I help you explore Laravel packages today?