pixelpeter/laravel-genderize-api-client
A Laravel client for the Genderize.io API that predicts gender from first names. Clean, framework-friendly integration with simple configuration, making it easy to enrich user profiles or forms with name-based gender detection in any Laravel application.
This is a Laravel service-provider package (auto-discovery registered, facade documented as Genderize) that wraps a gender-guessing API client. v13.0.0 is a compatibility-and-hardening release rather than a feature release: it adds Laravel 13.x support, raises the PHP floor to 8.3, drops Laravel 10/11 and PHP 8.1/8.2, and constrains laravel/framework to ^12.61.1|^13.0 to exclude versions affected by the CRLF injection and temporary signed URL advisories.
Architecture fit: Low-coupling and conventional — a service provider, a facade alias, config, and an HTTP client. Nothing here intrudes on application architecture; the package's blast radius in an app is confined to its config file, its outbound HTTP calls, and the facade alias. That makes it easy to adopt and easy to remove.
Integration feasibility: Straightforward, but gated by a hard platform bump. The upgrade requires Laravel ≥12.61.1 and PHP ≥8.3 simultaneously. Teams on Laravel 12 but PHP 8.2 cannot take v13 at all — Laravel 12 still runs on 8.2, so this is a genuine (if narrow) blocker to plan around, not just a paperwork change.
Technical risk: Moderate and concentrated in two areas. (1) The versioning convention change — major version now tracks the highest supported Laravel major — is a permanent convention shift that will confuse anyone reading ^13.0 as "package's 13th major." Release notes and internal docs need this stated explicitly. (2) The facade alias fix from Woocommerce to Genderize is a silent breaking change for anyone who relied on the (incorrect) discovered alias or manually registered Woocommerce to work around it; code referencing the old alias will fail at resolve time, not install time.
Key questions: Is the gender-guessing provider's API contract versioned anywhere, and does v13 change request/response shape (notes suggest not)? What is the package's own support policy now that v12.0.0 is deprecated with no further releases — will v13.x receive security patches for the full Laravel 12→13 window? Does the framework constraint ^12.61.1|^13.0 risk pinning applications away from a future Laravel 12 security patch that the maintainer has not yet tested? How long will the v13.x branch carry releases before master moves to a Laravel 14 line?
Stack fit: Laravel 12.61.1+ or 13.x on PHP 8.3/8.4/8.5. Test matrix is orchestra/testbench 11.x/10.x with PHPUnit ^12.5.8 — consistent with current Laravel practice. Well aligned with a modern, actively patched Laravel estate.
Migration path: Small but non-trivial, and best done as its own change:
^13.0 and resolve.Woocommerce — both facade usage and any manual Facade::alias / class_alias registration — and remove or rename to Genderize.Compatibility: Dropping Laravel 10/11 is defensible — both are outside security support — but teams still on 11 are now stranded on deprecated v12.0.0 with no forward path except a framework upgrade. Treat this as an application-upgrade dependency, not a package tweak. PHP 8.2 is dropped pre-emptively (EOL December 2026); apps on Laravel 12 + PHP 8.2 are the one cohort that must upgrade PHP to take a package they'd otherwise be eligible for.
Sequencing: Do the Laravel framework patch to ≥12.61.1 and the PHP 8.3 bump first, as a separate, independently verified change — both have security value on their own. Then the package bump plus the facade alias cleanup in a single follow-up commit. If the app is on Laravel 11, sequence the framework major upgrade first and treat the package bump as a trailing step; do not attempt both at once.
Maintenance: Low ongoing effort, but a higher-than-usual one-time cost from the platform floor. The versioning convention change is the real maintenance tax: internal dependency docs, Renovate/Dependabot allowlists, and any "we're on v12" tribal knowledge must be corrected, or the next upgrade review will misread the version number. The changelog workflow hardening (admin token, SHA-pinned actions) is a supply-chain improvement that reduces maintainer-side risk without any consumer effort.
Support: Mixed. The package moves in lockstep with Laravel majors and now has a clear, defensible support window — but v12.0.0 being deprecated with no further releases means late adopters get no security patches on the old line. There is no stated backport or LTS policy; assume none and plan to stay current.
Scaling: Unaffected. This is a client wrapper over an external API; package-side scaling is not a concern. The only scaling-relevant surface is rate limiting and retry behavior on the outbound HTTP calls, which v13 does not change — worth confirming it's configured, since it's the package's one operational failure surface.
Failure modes:
Woocommerce throws class-not-found at runtime, not install time. Cheap to fix, easy to miss in code paths without test coverage.^12.61.1|^13.0 excludes the advisory-affected versions by design, but if a future Laravel 12 patch falls outside the maintainer's tested range, consumers could be blocked from a security update until the package ships. Monitor this.Ramp-up: Very low for the package itself — service provider, config, facade, one HTTP call. The ramp-up cost is entirely in the platform prerequisite (PHP 8.3+ across all environments) and in the versioning-convention change, both of which are one-time education items. Budget an afternoon for a typical Laravel 12 app already on PHP 8.3; budget a framework-upgrade project if on Laravel 11.
How can I help you explore Laravel packages today?