fruitcakestudio/recaptcha
Laravel integration for Google reCAPTCHA. Adds validation rules, Blade directives and middleware to protect forms and routes from bots and spam, with support for reCAPTCHA v2 and v3 plus configurable keys, score thresholds and error messages.
Bot & abuse mitigation on public surfaces. The core product question this package answers is "how cheaply can we put a CAPTCHA gate in front of X?" The decisions it informs:
siteverify wrapper is the lowest-effort way to test that tradeoff.siteverify endpoint: a Guzzle client, a secret/config lookup, and a boolean/array response. The genuine build cost is a few hours, not a sprint. Treat this as a build decision you're outsourcing, not a strategic dependency.Consider it when all of the following hold:
siteverify call.Look elsewhere — or write the ~40 lines yourself — when:
Http::post() call.Net PM recommendation: do not adopt for new work. If it's already in the codebase, scope a migration ticket; the wrapper is small enough that replacement is a low-risk, sub-day change — the risk is entirely in staying.
To executives: "This is a tiny, free (MIT) helper library that lets our app ask Google 'was this really a human?' before accepting a form submission. It costs nothing and takes hours to integrate. The catch: it hasn't been updated since 2017, so it's effectively unmaintained. My recommendation is to not take the dependency — the same capability is roughly a day of engineering or a swap to a maintained vendor (Turnstile is free and lighter on user data). Either way, the strategic work isn't the library; it's deciding where to put friction and how much signup conversion we're willing to trade for spam reduction."
To engineering: "It's a Guzzle wrapper around siteverify plus config. No v3, no action/score validation, no maintenance since 2017, zero downstream dependents. I'd rather we own these 40 lines or adopt something with a release cadence. If we keep it, quarantine it to low-value forms and put it on the dependency-replacement backlog."
Decision framing to put in the doc: What we're really deciding is the CAPTCHA vendor and the friction budget — not the wrapper. Cost of the wrapper: ~0. Cost of the wrapper's abandonment: unbounded on a security path. Recommend a one-week spike comparing Turnstile vs. reCAPTCHA v3 on conversion, bot-block rate, and privacy review, then commit.
How can I help you explore Laravel packages today?