nowo-tech/password-strength-bundle
Password-strength bundle for PHP/Symfony apps: estimate password quality, enforce configurable rules and policies, and return clear feedback for forms and APIs. Simple service and validator integration with sensible defaults.
Framing correction (material to the decision): the request describes a "Laravel/PHP package", but nowo-tech/password-strength-bundle is a Symfony bundle (form type extension + validator constraint + Twig/JS asset surface). Its value proposition is Symfony's form/validator/DI pipeline. In a Laravel estate it is not installable as-is; you would be porting logic, not adopting a dependency. That changes the build-vs-buy math entirely and should be settled before any technical review proceeds.
Architecture fit
pattern, Twig integration. Low blast radius, no persistence, no schema, no service container surgery.pattern attribute and live feedback are UX affordances and must never be treated as enforcement. Architecture review must confirm the constraint is attached unconditionally on every password-bearing form (registration, reset, change, admin-create), not only where the JS runs.Integration feasibility
composer require, bundle registration, config tree, apply to form types). No infrastructure, queue, or external service dependency implied.src/Resources/assets with generated output under src/Resources/public/build, so publishing must be reconciled with the project's importmap/Encore strategy and CI asset build; (2) policy parity — the HTML pattern, the client-side scorer, and the server constraint must derive from one configuration source, or users will be told "valid" client-side and rejected server-side.Technical risk
PasswordHasher the app configures. These need explicit test evidence, not marketing copy.Key questions
pattern, on every password field?unsafe-eval), and does it work under importmap and Encore?aria-live) rather than colour-only?SECURITY.md and a disclosure process, and what is the release cadence? What is the exit plan if it stalls?Stack fit
Migration path (Symfony case)
Configuration tree, run the test suite locally, verify tag signatures and the release-date anomaly. Confirm no conflict with any incumbent password-strength package already in composer.json.PasswordPolicy config object. This keeps the dependency swappable and gives a single place to change if it is forked or replaced.Compatibility
composer.json; do not float. Re-verify the PHP/Symfony constraint against the platform on every upgrade.Sequencing Due diligence → sandbox spike → adapter wrapper → shadow-mode telemetry → enforcement on registration/reset → docs and runbook → quarterly re-evaluation gate (fork/vendor decision if upstream goes quiet). Each step is independently abandonable; nothing after step 2 is hard to reverse.
Maintenance
Support
Scaling
Failure modes
Ramp-up
How can I help you explore Laravel packages today?