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

Nova Grid Laravel Package

nibri10/nova-grid

Laravel Nova package that adds a configurable grid layout field for arranging resource form fields into responsive columns. It helps build cleaner, more compact admin forms and keeps complex Nova resources easier to scan without custom CSS or manual markup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. nibri10/nova-grid lives entirely in the presentation layer of a Laravel Nova 3.x admin panel. It wraps resource fields into a CSS grid on create/update screens and touches no domain logic, persistence, authorization rules, or API surfaces. For a TPM that narrowness is the decisive fact: the blast radius is confined to back-office form rendering, so the worst realistic failure is an ugly or broken admin form, not a broken product. It fits applications pinned to Nova 3.x that want denser forms for high-edit-frequency resources. It is a non-starter for Nova 4/5, for non-Nova Laravel apps, and for already-customized admin frontends. The correct PM framing is that this package is evidence of a real, recurring UX gap — Nova's single-column create/update screens — not the recommended solution to it.

Integration feasibility. Mechanically the install is trivial (composer require, then wrapping fields in a grid call inside fields()), which makes it tempting to treat as low-effort. The actual effort is in verification, not installation. Three things must be confirmed before any branch work: the real namespace and wrapper class (package descriptions routinely diverge from internals), whether the service provider publishes views/assets (missing assets is the #1 cause of "installed, layout does nothing"), and the integration mechanism — a Field/NovaElement subclass that swaps a component versus a view override. That last point determines whether validation, authorization, dependsOn, and persistence still run through Nova's normal path or get bypassed. Zero dependents and no test suite mean we are the first to exercise any of this.

Technical risk. Concentrated and easy to enumerate: single maintainer, last release 2021-07-15, 23 stars, zero downstream projects, no CI, and a typo-ridden description implying thin documentation. Nova 4/5 incompatibility is near-certain given the release date. There is no accessibility story, and multi-column forms commonly degrade screen-reader flow and mobile usability. Custom field types (File, Markdown/Trix, KeyValue, BelongsTo search-selects) render badly in narrow columns. Conditional fields and onlyOn* filters can leave empty cells because the grid does not reflow. Any one of these is survivable in isolation; the compounding issue is that nobody else in the ecosystem is surfacing breakage for us.

Key questions. Which Nova major are we on today, and is a Nova 4/5 upgrade anywhere on the roadmap? Who will accept named ownership of a fork? What is the measured edit-time or throughput bottleneck — do ops staff actually edit 20+ field records repeatedly? Can Nova's native ->halfWidth() / ->fullWidth() and field panels close enough of the gap to make this unnecessary? Does an invalid submit still anchor errors to the correct field inside a grid?

Integration Approach

Stack fit. Laravel + Nova 3.x, PHP, no frontend build step — which is genuinely convenient for an internal ops tool. Apache-2.0 is permissive enough to vendor the code under an internal namespace and credit upstream, which is the path the signals support.

Migration path. The decision is four-way, and the honest ranking is: copy or vendor over depend. Depend only survives if we are permanently on Nova 3 and accept the at-risk register entry. Fork is copy with extra ceremony. Copying the layout logic into an internal Resource base class or trait is a credible one-day estimate because the logic is a few dozen lines. Doing nothing (native width helpers) is a real option that should be priced first. This is a "we can own this in a day" call, not a procurement call — there is no license cost and no vendor relationship to negotiate.

Compatibility. Gate on the Nova major version before anything else. Check the package's composer.json constraint for laravel/nova, confirm the PHP/Laravel matrix, and treat the v4/v5 fallback as designed-in, not discovered later: on upgrade, unwrap grids and replace with native width helpers.

Sequencing. (1) Confirm Nova version and upgrade roadmap — this can kill the initiative on line one. (2) Run an afternoon spike: read src/, confirm the integration mechanism and asset publishing, do not merge as a dependency. (3) Port the relevant logic behind a single call site — a GridsFields trait or config flag — so swapping back to flat fields or native width helpers is a one-file change. (4) Apply to exactly one resource with real edit-throughput pain, mixing short fields only, leaving Markdown, File, and relationship fields flat. (5) Instrument and measure. (6) Expand only if the metric moves; otherwise flip the flag off and keep the finding that admin form density did not matter.

Operational Impact

Maintenance. The license is free; ownership is not. If we depend on it, we inherit permanent maintenance for a package nobody else uses. There will be no upstream fixes, so our own upgrade checklist is the only early-warning system: create, update, validation, and authorization on every wrapped resource, on every Nova bump. Name an owner explicitly — if nobody will take it, that is the answer and we should not adopt.

Support. No vendor support, no CVE monitoring, no SBOM inclusion story. Unmaintained dependencies with zero dependents are hard to defend in a compliance or security review, and the review cost lands on whoever owns the fork regardless of how small the code is.

Scaling. The benefit is flat as adoption grows; the cost is not. Each additional wrapped resource adds surface for layout regressions and upgrade breakage without adding proportional value. Cap adoption at a small, enumerated set of resources with genuine edit-throughput pain, and explicitly do not promote it to house style. Two columns is almost always right; three-plus looks good in a demo and breaks the moment a field has a long help() string, a validation error, or a translated label.

Failure modes. The most likely failure is silent: assets not published, columns render as a vertical stack, and the change looks like it did nothing. The second is vanishing fields inside grids — the debugging heuristic is to unwrap and return fields flat; if the field reappears, the wrapper is the cause. Beyond that: ragged half-empty rows from mixing wide and narrow fields, gaps from conditional visibility, truncated editors and unusable relationship selects when wide components get squeezed, mobile and screen-reader degradation, and a hard break at the next Nova major.

Ramp-up. Low. One afternoon to read the source and port the logic for anyone comfortable with Nova internals; effectively zero for a team already writing custom fields. That low ramp-up is the strongest argument in the package's favor — it makes a cheap calibration experiment possible, and it makes the build-versus-depend decision almost trivially favor building. It also supports a separate product decision worth capturing: a steady stream of abandoned micro-packages patching Nova's form layout is a data point at Nova license renewal, because each one is a tax on staying on a closed-source, version-fragile extension surface.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource