juststeveking/fluent-validation
Define Laravel validation rules with a fluent, chainable PHP API instead of pipe-delimited strings. juststeveking/fluent-validation keeps rules readable, composable, and easy to maintain across form requests and controllers.
Rule:: objects, Password::defaults(), and FormRequests. It changes how cheaply engineers author validation. That places it in the engineering-investment / tech-debt lane with velocity and defect metrics, not on the roadmap.->required()->string()->max(255)) is harder to typo than pipe-delimited strings. If teams are inventing their own validation idioms, this is a cheap candidate for "the one way we write rules" — for common cases only.Consider it when:
Look elsewhere when:
sometimes, required_if), nested-array validation, custom Rule objects, after-hook validation, localization, or error-shape control. Native Laravel stays the behavioral source of truth; otherwise you maintain two idioms.To executives: This is a free, MIT-licensed micro-library that makes Laravel validation rules easier to read and harder to get wrong. It creates no new product capability, so it does not belong on the roadmap. The case is cost avoidance: fewer malformed-request incidents, faster PR review on form-heavy work, and quicker onboarding for new Laravel engineers. Frame it as a one-day evaluation with a 30-day measurement window — not a program.
To engineering leadership: Treat it as adoptable source, not a dependency. It's small and MIT-licensed, but unmaintained since late 2022, single-maintainer, with no downstream users — we gain ergonomics and inherit the risk. Recommended path: (1) spike compatibility against our Laravel/PHP matrix; (2) pilot on one low-risk, high-FormRequest-density service, converting a single rules() method; (3) wrap it in a thin internal facade so removal is a one-file fix; (4) add before/after regression tests that assert on rules() output; (5) baseline validation defects and PR review time, then decide at 30 days to promote, fork, or discard. Pin the version, commit the lockfile, and document the migration-back path to native rules.
The honest bottom line: Upside is developer ergonomics and consistency; downside is negligible and fully contained if it stays behind an interface. Don't let it become a platform standard until someone owns the fork and a Laravel-upgrade compatibility test exists — otherwise a hobby project quietly becomes load-bearing.
How can I help you explore Laravel packages today?