jegex/filament-translatable
Filament Translatable adds seamless multi-language field editing to Filament forms, letting you manage translations across locales without leaving the admin panel. A lightweight helper for Laravel apps that need clean, simple, per-locale content editing.
Package: jegex/filament-translatable — a Filament panel plugin providing UI for editing translatable model attributes (presumably backed by spatie/laravel-translatable).
Architecture fit. The package sits in the presentation layer of a TALL-stack application: it decorates Filament form/table components so that a single translatable attribute is edited per-locale rather than as raw JSON. This is an additive, opt-in integration — it does not alter the persistence model, the ORM, or routing. Architecturally that is a good fit: translation storage remains in JSON columns on the existing model, and the package is a developer-experience layer on top. Risk of architectural lock-in is low; removal should be a matter of deleting the plugin registration and reverting component definitions.
Integration feasibility. Expected integration surface is small and idiomatic: composer require, register the plugin on the target Filament panel provider, add the HasTranslations trait and $translatable array to models, and configure the locale list. Feasibility is high for a team already running Filament. The main unknowns are Filament major-version support and the exact spatie/laravel-translatable constraint — both must be verified against the lockfile before committing.
Technical risk. Moderate-to-elevated, driven less by the code than by project maturity signals:
jegex) implies limited bus factor and no commercial support path.v1.0.5...v1.0.6). Semver implies a patch (no breaking changes expected), but the absence of a changelog means the actual diff must be read before upgrading. This is a governance signal about release hygiene, not evidence of a bad release.Key questions.
spatie/laravel-translatable versions are supported? Is there a published compatibility matrix?Stack fit. Assumes Laravel 10/11, PHP 8.1+, Filament 3.x (verify), Livewire, and spatie/laravel-translatable for storage. If the application already uses Spatie's trait, the package is a UI convenience with no schema implications. If translations are currently stored in separate rows or columns, this package is not a fit without a storage migration.
Migration path.
1.0.6) in composer.json; do not use a floating constraint on a 1.0.x single-maintainer package.composer update --dry-run against the existing Filament lock to confirm no constraint conflict.json/longText per DB engine) with a reversible migration; if retrofitting, backfill existing single-locale values into the default-locale key of the JSON structure before enabling the plugin.Compatibility. Confirm the Filament major version explicitly. Treat any Filament upgrade as requiring a re-test of all translatable resources; do not assume a patch release of the plugin covers a Filament major bump.
Sequencing.
Maintenance. Low ongoing code maintenance (it is a thin UI layer), but non-trivial dependency maintenance: the plugin must track Filament releases. Budget for a periodic compatibility review each time Filament ships a minor/major. Pin the version and treat upgrades as deliberate, tested changes rather than routine composer update output.
Support. Community-only. No vendor SLA. Escalation path is GitHub issues plus, ultimately, forking — which is realistic given the small surface area. Mitigate by keeping the integration shallow enough that a fork-and-patch is a day's work, not a quarter's.
Scaling. Translation payloads live in JSON columns on the parent row; reads are cheap, and the plugin adds no runtime service. Watch two things: (a) row size if many locales × many long-text fields are translated on wide models; (b) any query patterns that filter or sort on translated values — these generally cannot use a plain index on a JSON column without generated columns or engine-specific indexing. Neither is a blocker at typical CMS scale.
Failure modes.
spatie/laravel-translatable or Filament during composer update — caught at install time if versions are pinned.config/app.php locales, and the model's $translatable set — misconfiguration yields confusing editor behaviour.Ramp-up. Low for developers already fluent in Filament (hours). Moderate for content editors, who need a short walkthrough of the locale switcher and the copy/fallback semantics. The larger organisational cost is agreeing a translation workflow (who owns which locale, what the publish gate is) — the package solves rendering, not process.
Recommendation for v1.0.6. No evidence of a breaking change; treat as a routine patch. The release notes are uninformative, so adoption should be gated on a manual diff review rather than on the version number. Proceed with a timeboxed spike and a pinned version; do not adopt organisation-wide until Filament version support and test coverage are confirmed.
How can I help you explore Laravel packages today?