ferdiunal/nova-shield
Nova Shield is a Laravel Nova package for managing roles and permissions. It lets you control access to Nova resources, actions, and tools through a simple interface, making authorization easier to configure and maintain.
Architecture fit
spatie/laravel-permission). If so, it adds no new source of truth and no new tables — it is a skin over data you already own.spatie/laravel-permission or ships its own schema/models, and (2) whether it targets Nova 4, Nova 5, or both.Integration feasibility
composer require, register the tool in NovaServiceProvider::tools(), optionally publish config/assets. Realistically an afternoon for a first working install in staging.Technical risk
authorize()/canSee() check, a permissive policy, or an overly broad Gate means any Nova user can grant themselves super-admin. This must be reviewed line-by-line, not assumed.Key questions
spatie/laravel-permission, or does it define its own tables, models, and migrations?composer.json constraints on PHP, Laravel, and Nova?web, api, custom), and does it support multi-guard / multi-tenant setups?Verdict: viable as a scoped, low-cost admin convenience with a planned fork; not viable as a trusted, unexamined dependency. The 0.38 opportunity score is directionally correct — differentiation is low, and a ~1-day in-house Nova resource over Spatie is a credible substitute if any of the above answers are unfavorable.
Stack fit
spatie/laravel-permission as the single RBAC source of truth, with Nova as the internal admin surface.Migration path
Compatibility
nova:publish behavior occasionally break across Nova majors.Sequencing
composer.json, service provider, tool class, policies, and any migrations. Answer the eight questions above. This gate decides go/no-go.repositories VCS entry with a locked commit. Establish internal ownership and a patch path.Maintenance
Support
tinker/CLI fallback independent of this package.Scaling
Failure modes
web permissions while your API authorizes on api, producing invisible authorization gaps.Ramp-up
Recommendation: adopt only as a scoped, forked, internally owned admin convenience on an existing Spatie foundation, gated behind the Day-1 dependency audit. If the audit surfaces its own schema, missing tool-level authorization, or no cache flushing, decline and build a ~1-day Nova resource over your existing permission tables instead.
How can I help you explore Laravel packages today?