fidum/nova-package-bundler-command
A Laravel Nova artisan command that bundles a Nova package's assets and resources into a single distributable, simplifying packaging and release for Nova package developers.
composer.json plus per-package Mix/Vite wiring, owned by whoever cuts Nova releases. A hand-rolled setup is genuinely competitive for one or two extensions; the buy case strengthens with volume and repetition. Decide on release-time economics, not on features — the package's feature list is thin and that's fine, because the feature isn't the product, the saved release ritual is.require-dev and never touches the request lifecycle, it can be removed in a single PR with zero application-code changes. That low reversibility cost is itself the argument for an opportunistic trial on staging rather than a procurement cycle. If the command turns out to scaffold files we then own, that calculus changes — the exit becomes "we own this now," which is worth knowing before, not after.composer update asset step. These have different success metrics and different owners.One caveat that must be resolved before any of the above becomes roadmap language: our sources disagree on what the command actually does — merge third-party package assets into one bundle (runtime load-speed play), compile a package's own frontend source into distributable output (build-convenience play), or scaffold a Composer-ready metapackage. These imply different success metrics (requests and load timing vs. release hours saved), different owners (platform/ops vs. package maintainers), and different failure modes. A single staging run plus a read of vendor/fidum/nova-package-bundler-command/src/ settles it in under an hour. Do not commit to a metric until it's settled.
Adopt when most of these are true:
git diff habit and a revert in the PR description.require-dev only, one invocation line in one script, a named maintainer, and a documented exit path.Look elsewhere (or don't bother) when:
composer.json and per-package Mix/Vite config is competitive and has fewer unknowns.Adoption shape, if you proceed: put it in the package repo's require-dev only, not the consuming application's composer.json — consumers should receive compiled files via Composer and never need Node. Commit compiled dist/ for packages we distribute; gitignore it for private apps that rebuild on deploy. Pick one per repo and write it down; a half-committed dist/ is worse than either.
For executives — one paragraph: This is a small Laravel developer tooling dependency, not a product feature. It's worth a narrow trial because it can standardise how we build and ship Laravel Nova admin extensions, which today is bespoke work per package. The upside is engineering time saved per release and potentially a faster-loading admin; the downside is bounded — it installs as a dev-only dependency, never runs in production requests, and can be removed in a single pull request without touching application code. It carries maintenance risk (essentially one maintainer, negligible adoption), which is why the recommendation is a staging trial with a named owner and a measured baseline, not a procurement cycle or a roadmap commitment. Do not book any customer-facing benefit against it.
For engineering — the substantive summary: fidum/nova-package-bundler-command is a single Artisan command, MIT, require-dev only, currently 1.8.1 with Laravel 13 allowed as a patch-level constraint widening. It either consolidates third-party Nova package assets into one file (runtime request-count play) or bundles a Nova package's own JS/CSS into distributable output (build-convenience play) — the sources conflict and the --help output plus src/ resolves it in minutes. Start on a throwaway branch against one real Nova tool, run git status --short and git diff before committing anything, and capture Nova admin request counts and load timings against a pre-change baseline on a surface with our actual tool set installed. If it's a build step, wire it into the build job (not the test job), optionally guard with git diff --exit-code on compiled assets to catch re-bundle drift, and keep asset registration in NovaServiceProvider — the bundler owns file contents, Nova owns registration, don't conflate them. Known failure modes to watch: stale consolidated bundles after a tool version bump, load-order collisions between packages, and path mismatches after nova:publish. Revert path is a single PR.
Ask: approve a time-boxed staging evaluation (roughly a day of engineering plus review), with a named owner and one written conclusion — adopt, adopt-with-conditions, or close. The output we want isn't "it works"; it's a measured number and a documented exit path.
How can I help you explore Laravel packages today?