amethyst/user
Amethyst User is a Laravel package for managing application users, providing a ready-made foundation for user accounts, profiles, and authentication-related workflows so you can add user handling to your project without building it from scratch.
Architecture fit. amethyst/user is a domain module from the Amethyst CMS ecosystem: a modular, Doctrine-backed layer sitting on top of Laravel. It supplies the User entity, its repository/persistence mapping, and user-management services — not a drop-in authentication scaffold. It fits cleanly only if the target application is already Amethyst-based, or if the team has deliberately adopted Doctrine entity mapping inside Laravel. It does not fit a conventional Eloquent-first Laravel application without an adapter layer, dual-ORM coexistence, and re-implementation of the guard/provider wiring.
Integration feasibility. Low. The package is a leaf in an abandoned module graph: zero stars, zero dependents, no downstream validation, no community troubleshooting trail. Composer constraints almost certainly pin an EOL Laravel branch (5.x/6.x) and PHP 7.x against Doctrine ORM 2.x, and it will carry a hard dependency on amethyst/core for container bindings, module registration, and configuration loading. Any adoption is a fork-and-modernize project, not an install-and-configure task. Budget it as a source-extraction effort, not a dependency addition.
Technical risk. Concentrated in the security-sensitive path. User modules own password hashing parameters, remember-me tokens, password-reset token lifecycle, email verification, and guard/session interaction — all areas where stale code becomes a vulnerability rather than a bug. Secondary risks: tight coupling to Amethyst's container and module bootstrap (making the package non-extractable in isolation), Doctrine proxy/lazy-loading semantics diverging from Eloquent expectations, and no observable CI, release cadence, or maintainer presence to anchor an upgrade decision.
Key questions.
composer.json constraints for PHP, Laravel/Illuminate, and Doctrine? Is there a version that runs on a currently supported Laravel?amethyst/core, amethyst/auth, or other unmaintained siblings, and are any of those load-bearing?Score reading. The gap between the 4.15 opportunity score and the 0.40 maturity score is the whole story: the domain model has latent reference value, but the artifact is not production-viable as a dependency. Treat it as reference architecture to mine, not a component to ship.
Stack fit. Compatible only with Laravel + Doctrine. If the target application is Eloquent-native, adoption forces two persistence paradigms into one codebase — an ongoing tax on every developer who touches the user model. If the target is already Doctrine-based, the fit improves materially, but the Amethyst module conventions still bind you to a framework shell that is itself unmaintained.
Migration path. Three options, in descending preference:
Compatibility. Establish a version matrix before committing: PHP runtime, framework branch, Doctrine ORM, database driver, and cache driver for Doctrine metadata. Assume nothing is verified — the absence of dependents means no one has published a working combination.
Sequencing. Do not interleave this with feature work.
composer.json, map the transitive graph, confirm whether auth is in scope. Timebox: days, not weeks.Build-vs-adopt. A conventional Laravel application ships a user model, migrations, password reset, and email verification out of the box. The realistic value here is the domain modeling of user state and roles — perhaps two days of design reading — against a multi-week modernization effort. If there is no existing Amethyst investment, the expected value of adoption is negative.
Maintenance. You inherit the package permanently. Bus factor moves from one to zero the moment you depend on it; there is no upstream to absorb framework upgrades, PHP deprecations, or security patches. Every future Laravel major becomes an internal migration project.
Support. None. No maintainer response, no issue history of substance, no Stack Overflow corpus. Internal engineers become the sole source of truth, and that knowledge is undocumented by definition.
Scaling. Unknown and unbenchmarked. Expect Doctrine hydration and proxy behavior to drive N+1 queries on user-list and role-resolution paths; the user table is a hot row for session and auth lookups. At low volume this is invisible; at volume it becomes a caching and read-replica conversation that the module was never designed for. Multi-tenancy, if needed, is not addressed and will require schema surgery.
Failure modes. The dangerous ones are silent: a misconfigured guard falling through to an unauthenticated state, stale Doctrine metadata cache after an entity change, password hash algorithm drift locking out users on upgrade, reset tokens with no expiry, and dependency rot exposing a known CVE with no patch path. Each of these fails quietly and is discovered in production.
Ramp-up. A mid-level Laravel developer needs roughly two to four weeks to become productive across Doctrine entity mapping and Amethyst's module bootstrap — time spent on framework archaeology rather than product work. Add a dedicated security review before any authentication path ships. Onboarding cost per additional engineer stays elevated for as long as the module is in the codebase, because the conventions are non-idiomatic and undocumented.
Recommendation. Do not adopt as a dependency. Mine it for domain-model reference if user/role structure is still an open design question, and otherwise build on the framework's native auth. The opportunity score reflects latent design value; the maturity score reflects whether that value can be safely operated. It cannot.
How can I help you explore Laravel packages today?