timehunter/laravel-google-recaptcha-v2
A Laravel package for integrating Google reCAPTCHA v2 into forms and requests. It provides configuration and validation support to help verify reCAPTCHA responses in Laravel applications.
Consider it when:
recaptcha validation rule, one Blade directive.Look elsewhere when:
NOASSERTION — GitHub could not detect a license, which by default means all rights reserved. For most companies this is a legal/procurement blocker regardless of code quality.biscolab/laravel-recaptcha (v2 + v3, active), anhskohbo/no-captcha (large install base), or Laravel's own rate limiter plus a honeypot for the low-risk cases.Recommendation: do not adopt as a dependency. Either replicate the ~100 lines in-house under your own license and ownership, or take a maintained alternative.
For executives (30 seconds): This is a small, free wrapper that adds a "I'm not a robot" checkbox to Laravel forms and cuts scripted spam. It's cheap to try, but it's effectively abandonware — one maintainer, 13 stars, no releases since 2021, no declared license, and no downstream users. The functionality is commodity; the risk is legal (unclear license) and lifecycle (we'd own the maintenance). Recommendation: don't take the dependency — spend the same half-day wiring a maintained package or an internal ~100-line equivalent, and revisit whether we want Google's checkbox at all versus Cloudflare Turnstile, which is free, invisible, and easier to defend in a privacy review.
For engineering: It's a thin package — service provider, publishable config, a recaptcha validation rule, and a Blade directive. Integration is roughly half a day. Real cost is ownership: expect to fork for Laravel 10/11 and PHP 8.2+, pin the fork internally, and add our own tests around the verification call (timeout handling, fail-open vs. fail-closed, key rotation via env). If we adopt any reCAPTCHA path, prefer a package with active releases and a declared license, and isolate it behind a small internal interface (BotCheck) so swapping vendors is a config change rather than a refactor.
For the product/design side: Budget for the funnel cost — a visible checkbox on signup or checkout is measurable friction — and for the consent/copy implications of sending signals to Google in EU traffic. Decide fail-open vs. fail-closed behavior explicitly; it's a product policy decision, not an implementation detail.
How can I help you explore Laravel packages today?