brandonjbegle/nova-grapesjs-page-builder
Adds a GrapesJS drag-and-drop page builder to Laravel Nova so you can create and edit HTML pages visually, store layouts on your models, and manage content without leaving the Nova admin panel. Provides a Nova field and supporting assets.
Architecture fit. This is a Laravel package that extends Laravel Nova — the release note ("Nova 5 compatability") is the only architectural signal available, and it positions the package in Nova's extension layer (most likely a field, tool, card, or resource tool registered through a Nova service provider). That is a shallow, well-understood integration surface: it does not touch application domain code, it does not own persistence, and it is installed and versioned via Composer. Fit is high if the team already runs Nova; near-zero if the admin surface is built with Filament, Backpack, or custom Blade.
Integration feasibility. Straightforward for a Laravel team already on Nova 5. The work is a Composer require, provider registration, and whatever publishable assets/config the package ships. Effort is measured in hours, not sprints — but only after the compatibility matrix below is confirmed.
Technical risk.
Key questions to resolve before adoption.
^4|^5 union or a hard ^5?composer.json require, and does that align with our pinned runtime?Stack fit. Assumes Laravel + Nova 5. Because Nova 5 pins to a modern Laravel baseline, the first gate is not this package at all — it is whether our application is on a Laravel version Nova 5 supports. If we are on Nova 4 today, the real decision is a Nova upgrade with this package as a passenger, not a package upgrade.
Migration path.
composer require vendor/package:0.2.1 --exact), never a floating ^0.2 — see Operational Impact.nova:publish after upgrade.Compatibility. Three constraints must intersect: our Laravel version, our Nova version, and the package's declared constraints. Check for collisions with any other Nova extensions in the estate — Nova packages commonly share asset namespaces and can silently overwrite each other's compiled JS/CSS. Also confirm whether the package declares a nova constraint at all; a missing constraint means Composer will happily install it against an incompatible Nova.
Sequencing.
composer.json; answer the key questions above.Maintenance. Pre-1.0 with terse release notes means we must budget for periodic compatibility firefighting, particularly at each Nova major. Mitigations: pin the exact version, commit the lockfile, and keep a vendored fork ready so a breaking upstream release cannot block our own Nova upgrades. Assign a named owner for this dependency.
Support. Expect community-only support — GitHub issues, no SLA, no vendor contract. Nova itself is commercial and licensed per project, so there is a support channel for the platform but not for this extension. Escalation path is our own fork.
Scaling. Two axes. First, request-path cost: Nova fields that resolve relationships can introduce N+1 queries on index screens, which degrade badly as admin datasets grow — load-test the resource list view at realistic row counts. Second, asset weight: Nova packages ship compiled JS into the admin bundle, and several of them compound page weight.
Failure modes, ranked.
canSee/policy gating, exposing privileged operations to under-privileged Nova users. Highest severity; test explicitly.Ramp-up. Low for engineers already fluent in Nova — provider registration and field configuration are familiar patterns, roughly half a day to first productive use. The TPM-side cost is not ramp-up but cadence: someone must own the Nova-upgrade calendar and check this package against it every time. Treat v0.2.1 as evidence the package is alive and tracking Nova, not as evidence it is stable.
How can I help you explore Laravel packages today?