nuewire/acl
A Laravel ACL package for managing roles and permissions, letting you define access rules and gate application features through a simple, configurable access control list.
nuewire/users. This package is explicitly the optional ACL module of an existing user-management suite and delegates to spatie/laravel-permission. That makes it a decision about ecosystem consolidation — one user stack, one authorization idiom — rather than a standalone feature bet.NOASSERTION). Treat release cadence as weak positive evidence and treat licensing/community traction as open risk items requiring verification, not as settled facts.Consider it when:
nuewire/users. The incremental cost is a publish-and-migrate step, and you inherit a consistent user + ACL stack instead of stitching two vendors together.Look elsewhere when:
nuewire/users. The value proposition collapses to "a thin convenience wrapper over spatie/laravel-permission." Adopt spatie/laravel-permission directly — it carries the actual battle-testing, documentation, and community support, and it removes a single-maintainer hop from your critical path.NOASSERTION means no standard license was detected. Until legal confirms redistribution and commercial-use terms, this cannot go into a product we ship or into an acquisition/security due-diligence package. This is a hard blocker, not a footnote.nuewire/acl provides over spatie/laravel-permission. If the answer is "a slightly cleaner API for nuewire/users users," this is a convenience decision, not a strategic one, and should be priced accordingly.For executives (one paragraph): Authorization — who can see and change what — is required for every enterprise and team-tier feature on our roadmap, and building it ourselves is expensive, slow, and a common source of security incidents. nuewire/acl is a small Laravel package that provides roles and permissions out of the box and sits on top of spatie/laravel-permission, the de facto standard in the Laravel ecosystem. Because it is the optional ACL module of a user-management suite we are already evaluating, adopting it is close to free and keeps one consistent user stack. The caveats are material and honest: the project has no community traction (0 stars), a single maintainer, and an unresolved license that legal must clear before we ship it. My recommendation is to run a time-boxed spike — two to three days of engineering to confirm the license, read the 1.2.1→1.3.0 diff, and wire one protected route end to end — and in parallel assume that the fallback, adopting spatie/laravel-permission directly, delivers roughly the same product outcome with materially lower dependency risk.
For engineering (the working summary): Do not build authorization in-house. This package is a thin, Laravel-native layer over spatie/laravel-permission — trait-based role checks, middleware for route groups, @can/Gate for UI, publishable config and migrations — and it pairs with nuewire/users, which is its only real differentiator. Plan the integration the way the docs suggest: seed the permission graph idempotently rather than hand-creating roles, keep coarse checks in policies and fine-grained record logic in Laravel policies, centralize any super-admin bypass in a single Gate::before, and be explicit about guards if we run more than one. Two operational hazards deserve design attention up front: cache invalidation on role writes (the classic "works in tinker, not in the app" bug) and N+1 permission lookups on admin list views. Pin ^1.3, test both the allowed and forbidden path per protected route, and prefer extending the package's models and traits over editing vendor files. Finally, give me a written answer to one question: what does this give us that spatie/laravel-permission does not? If the answer is "a cleaner install alongside nuewire/users," say so plainly — that is a legitimate reason to choose it, but it is a convenience argument, and it should not be dressed up as a strategic one.
How can I help you explore Laravel packages today?