visiosoft/json-field_type
Visiosoft JSON Field Type provides a custom field type for Laravel/Streams applications to store and edit JSON data through standard admin forms. It integrates structured JSON input into existing field workflows, making it easy to manage configuration or metadata without custom UI code.
Architecture fit. This is not a general-purpose Laravel package. It is a Streams Platform addon — a FieldType extension for PyroCMS and its OpenClassify fork. It depends on the Streams field-type contract, the addon manifest conventions, and the control-panel asset/view pipeline. Outside that runtime (vanilla Laravel, Nova, Filament, Livewire forms) it contributes nothing and cannot be wired in without reimplementation.
Integration feasibility. High if we are already running OpenClassify/PyroCMS with Streams — installation is a composer require plus addon registration plus assigning the field type to a stream field. Near-zero otherwise. The code surface is small, which keeps both the adoption cost and the replacement cost low.
Technical risk.
LIKE scans.Key questions.
text column or a native json column, and is there a cast?Stack fit. Valid only on OpenClassify/PyroCMS with Streams. If our target application is any other Laravel stack, the correct answer is to stop here and write a native field type for whatever form layer we actually use.
Migration path. Do not consume this from Packagist as-is. Vendor it — fork into a private repository or copy the source into the addon directory — pin by commit, and treat it as first-party code. This grants patch rights and removes dependence on an abandoned upstream. Where practical, prefer a clean reimplementation: a PyroCMS JSON field type is typically a small class extending FieldType with input/output views plus a validation rule, which is likely cheaper to write fresh than to revive.
Compatibility. Verify against our pinned PHP, Laravel, and Streams versions with an explicit smoke test. Expect to patch the service provider registration, namespaces, and any helper or signature changes removed in later framework versions. Add a server-side JSON validation rule and output escaping regardless of what ships in the box.
Sequencing.
Maintenance. We own it from day one. No upstream will absorb Laravel or PHP version bumps, so budget a recurring maintenance line — or eliminate the fork overhead entirely by replacing it with an in-house field type.
Support. None. No documentation, no issue triage, no security advisories. Internal ownership must be named explicitly, with a documented fallback if that individual leaves.
Scaling. The field type itself is thin and will not be a throughput bottleneck. The scaling risk is the data model: free-form JSON columns resist indexing, complicate reporting, and grow unbounded. Acceptable for config-like payloads; if JSON becomes the de facto schema for business entities, plan an extraction path before volume makes it expensive.
Failure modes.
Ramp-up. Low for a Laravel developer familiar with Streams addons — hours, not days, to read the contract and the code. The real ramp-up cost is institutional: whoever adopts it also owns it, and no one else on the team will carry context.
Recommendation. Treat this repository as a reference implementation, not a dependency. Fork or reimplement under our own ownership if the JSON field type is genuinely needed.
How can I help you explore Laravel packages today?