Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Translatable Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  • Version 1.0.x with a single-maintainer namespace (jegex) implies limited bus factor and no commercial support path.
  • v1.0.6 release notes contain no descriptive content — only a GitHub compare link (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.
  • Filament coupling is the dominant technical risk. Filament's form/table component APIs have moved between majors; a plugin that patches component behaviour is exposed to those changes.
  • Locale/label collision risk in existing resources where translatable fields are already rendered manually — dual rendering paths are a common source of confusion.

Key questions.

  1. Which Filament major versions (3.x, 4.x) and which spatie/laravel-translatable versions are supported? Is there a published compatibility matrix?
  2. What is in the v1.0.5→v1.0.6 diff? Bug fix, dependency bump, or Filament compatibility patch?
  3. Is there automated test coverage, and does CI run against multiple Filament/Laravel versions?
  4. Does it support Repeater/Builder nested translatable fields, or only top-level attributes?
  5. How are missing translations and fallback locales rendered — blank, fallback value, or placeholder?
  6. What is the license, and is there any indication of maintenance cadence (release frequency, issue responsiveness)?

Integration Approach

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. Pin the exact version (1.0.6) in composer.json; do not use a floating constraint on a 1.0.x single-maintainer package.
  2. Read the v1.0.5→v1.0.6 diff and the repository README before adoption — the release notes alone are insufficient to characterise the change.
  3. Validate the dependency graph in a throwaway branch: composer update --dry-run against the existing Filament lock to confirm no constraint conflict.
  4. If translations are greenfield, add JSON columns (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.

  1. Spike: one low-traffic resource, one translatable field, one panel. Timebox to a day.
  2. Validate editor UX with actual content editors (locale switcher discoverability, copy-from-default behaviour).
  3. Roll out to remaining resources behind a feature flag or per-resource opt-in.
  4. Only then remove any bespoke translation-editing code paths to avoid dual rendering.

Operational Impact

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.

  • Silent blank fields when a locale key is absent — ensure fallback behaviour is explicit and visible to editors.
  • Filament upgrade breakage in form/table component rendering — surfaces as broken or duplicated inputs; caught by visual regression checks on translatable resources.
  • Constraint conflict on spatie/laravel-translatable or Filament during composer update — caught at install time if versions are pinned.
  • Abandonment — the package stops receiving Filament compatibility updates. Failure is graceful: the data model is unchanged and the plugin is removable.
  • Locale drift between Filament panel locales, 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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log