pepperfm/filament-json
pepperfm/filament-json provides Filament components for editing and displaying JSON in Laravel admin panels. It supports formatting, validation, and readable previews, making nested configuration, metadata, and API payloads easier to manage without custom UI code.
false, 0, "0", empty strings) and stops filterNullable() from dropping non-null falsy values. That matters at the product level, not just the code level: an operator who sees a blank cell where the payload said false or 0 will draw the wrong conclusion. Correct display of falsy and scalar states is a trust requirement for any internal tooling built on this.state(), getStateUsing(), default(), relationship state, separators, state caching) before normalizing means the package composes with computed and relationship-driven fields instead of fighting them. That widens the set of screens we can build without custom glue.Consider adoption when most of the following hold:
Arrayable objects, raw JSON strings, and plain scalars — in a form, infolist, modal, or drawer.Look elsewhere or build when:
5.x line doesn't support. Verify the version matrix explicitly before scoping work against it.To executives: This is a small, free dependency that removes a class of internal tooling work. It lets support and operations read raw integration payloads directly in the admin panel, which shortens investigation time and reduces escalations to engineering. No new infrastructure, no licensing cost, no migration. The 5.0.2 release is a maintenance update that fixes display correctness for edge-case values — notably false, 0, and empty strings, which previously risked showing as blank and misleading whoever was reading the screen. It also adds automated tests and style checks on the active branch, which is the signal we look for before depending on an open-source component. Recommendation: adopt as a standard dependency, upgrade at the next maintenance window, and revisit only if we outgrow read-only viewing.
To engineering: 5.0.2 is a patch with no breaking changes. The substantive fix is that native Filament state resolution now runs before JSON normalization, so state(), getStateUsing(), default(), relationship state, separators, and state caching keep working — meaning we can drop custom workarounds for computed and relationship fields. It also decodes valid raw JSON strings into structured tree/table content while keeping invalid JSON renderable as a scalar, preserves falsy values, and narrows filterNullable() to removing only null. Blade rendering is hardened for scalar states, with regression coverage across computed state, raw JSON strings, nullable filtering, falsy values, and inline/modal/drawer modes. Tests and code style now run in CI on 5.x. Upgrade is low-risk; the ask is a smoke test on any screen that renders nullable or boolean fields, since the filterNullable() behavior change is the one place existing output could differ.
Framing to avoid: don't sell this as a platform capability or a reason to choose Filament. It's a display component. Its value is entirely in the hours it saves and the misleading-blank-cells it prevents.
How can I help you explore Laravel packages today?