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

Dynamic Field Laravel Package

ajmariduena/dynamic-field

Dynamic Field for Laravel lets you attach custom fields to Eloquent models without writing new migrations. Configure field types, validation, and options, store values as JSON, and access dynamic data through a simple, fluent API—ideal for user-defined forms and flexible schemas.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

The package is a Laravel Nova field extension, which places it in a narrow but well-understood slot: Nova fields are Composer-installed PHP classes paired with a compiled Vue component, resolved at runtime by Nova's field registry. Architecturally this is a low-ceremony integration — no service container wiring, no migrations of its own, and typically no published config. The trade-off is that Nova fields are tightly coupled to Nova's internal asset pipeline and front-end stack, so the package's real "surface area" is as much JavaScript as PHP. A TPM should treat this as a presentation-layer dependency, not infrastructure: it should never sit on a critical write path where a broken component blocks data entry.

The "dynamic field" concept usually implies composing sub-fields at runtime (conditional visibility, repeatable groups, or JSON-schema-driven forms) and persisting structured data into a single column. That is genuinely useful in Nova, which has no first-class repeatable/builder field. The opportunity: 6.47 score against a 0.58 composite suggests exactly this: real capability gap, immature supply.

Integration feasibility

Feasible for a scoped admin-only use case. Blockers are not conceptual but logistical:

  • Requires a valid Nova license and a Nova version pinned in your composer.json. Nova major versions change the field API and front-end framework generation, so compatibility must be verified against your Nova version, not "latest."
  • Nova fields ship pre-built JS assets. If the repo lacks a committed dist/, you inherit a Node build step and the attendant toolchain drift.
  • 0 dependents means no third party has validated this against a real Nova upgrade cycle. You are the first integration.

Technical risk

  • Bus factor of one. 18 stars and a single author implies a personal utility, not a maintained product. Assume no SLA and no security response.
  • Version cliff. Nova major upgrades are the most likely breakage event, and field packages frequently die at these boundaries.
  • Data shape coupling. If dynamic output lands in a JSON column, the schema is effectively defined by the component's behavior. A future swap-out means a data migration, not a package swap.
  • Supply chain. Low-visibility packages warrant a source read before install — check for eval, unvetted dynamic dispatch, and unpublished asset fetches.

Key questions

  1. Which Nova versions are declared supported, and when was the last release relative to Nova's current major?
  2. Is the compiled JS committed, or does install require a local Node build?
  3. What exactly does it persist — a JSON blob, flattened columns, or related models? Can we read that data without the package installed?
  4. Is there a license file, and does it permit forking/vendoring?
  5. Does the field enforce server-side validation, or is validation front-end-only?

Integration Approach

Stack fit

Good fit if you are already on Laravel + Nova and the need is confined to back-office authoring. It is a poor fit if the same dynamic structures must render in the customer-facing app — the field is a Nova admin construct, and its rendering rules would need to be reimplemented for any public surface. Recommend keeping the persistence contract (the JSON shape) as the stable interface and treating the Nova field as one consumer of it.

Migration path

Treat adoption as additive and reversible:

  1. Read the source. Confirm asset strategy, persistence shape, and validation behavior before composer-requiring anything.
  2. Vendor-pin. Require an exact version, and mirror the repository (fork or internal VCS path) on day one so a deletion or force-push upstream cannot break your builds.
  3. Abstract the data. Define the JSON column and a small domain-level value object/DTO that owns serialization, so the field never becomes the schema authority.
  4. Shadow-run. Ship the field on one non-critical resource first and compare persisted output against expectations.

Compatibility

Verify against your exact matrix: PHP minor, Laravel major, Nova major, and Node version if you must build assets. Nova's front-end generation has moved forward over time; a field built for an older generation may need component-level porting, which is a genuine engineering task, not a config toggle. Budget it explicitly.

Sequencing

Source review → fork and pin → DTO/persistence contract → single-resource pilot → validation parity check (server-side rules must not depend on the field) → broader rollout → document exit criteria. Do not sequence this ahead of any Nova upgrade; land it after you are on a stable Nova major so you have headroom before the next boundary.

Operational Impact

Maintenance

Assume you own it. A single-maintainer package with 18 stars should be budgeted as vendored internal code with an upstream courtesy channel, not as a dependency with a support contract. Practical cost: a recurring line item each Nova upgrade cycle (component porting + regression testing), plus ad-hoc time if the author goes dormant.

Support

No vendor support, no SLA, no CVE process. Internal triage falls to whoever owns the Nova admin area. Mitigate by keeping the blast radius small: if the field breaks, admins should retain a degraded-but-functional editing path rather than a hard failure.

Scaling

Admin-side scale is rarely the constraint — the number of editors is small. Real scaling concerns are (a) JSON payload size per record if repeatable groups grow unbounded, and (b) query/index performance if reporting later needs to filter on nested keys. Decide early whether the persisted structures will ever need to be queried relationally; if yes, normalize instead of nesting.

Failure modes

  • Silent validation gap — front-end-only validation lets malformed structures through. Highest-severity mode; enforce server-side rules independently.
  • Upgrade breakage — Nova bump renders the component inert or throws at boot. Mitigate with pinning and a pre-upgrade smoke test on the pilot resource.
  • Asset build drift — Node/toolchain mismatch blocks deploys. Mitigate by committing built assets in your fork.
  • Author abandonment — repo archived or deleted. Mitigate with an immediate fork.
  • Schema lock-in — persisted shape becomes undeconstructable without the field. Mitigate with the DTO boundary.

Ramp-up

Low for consumers — admins see a form, developers add one field to a resource. Moderate for maintainers — someone must be able to read both the PHP field class and the Vue component, which is a narrower skill set than typical Laravel work. Identify that person before adoption; if no one on the team will own the JS side, that absence is itself the deciding factor. Recommend a time-boxed spike (1–2 days) covering source review, a pilot resource, and a documented exit plan before committing.

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.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
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