albertcht/invisible-recaptcha
A Laravel package for Google Invisible reCAPTCHA that renders the widget and validates submissions server-side with minimal setup. It helps protect forms from spam and bots without adding a visible checkbox for users, integrating cleanly with Laravel validation rules.
Architecture fit
invisible_captcha), a config stub, and a server-side call to Google's siteverify endpoint. No persistence, no schema, no domain coupling.Integration feasibility
composer require, publish config, set RECAPTCHA_SITE_KEY / RECAPTCHA_SECRET_KEY, add the rule. Half a day for a standard Laravel form; an hour if the team has done it before.illuminate/* capped around v9 and no declared PHP 8.2/8.3 support. On Laravel 10/11 this needs a fork or a constraint override, not a clean install.Technical risk (ranked)
.env by default; needs vault-backed injection and a rotation plan.Key questions
Stack fit Strong for Laravel 8/9 monoliths with server-rendered forms. Weak for Laravel 10+, and out of scope for API-only, SPA-with-separate-backend, or non-PHP services — those should use a JS-side widget plus a first-party verifier.
Migration path
biscolab/laravel-recaptcha, google/recaptcha): comparable surface; note that biscolab is materially more actively maintained and supports v3 — benchmark it before committing.CaptchaVerifier interface from day one. The package then becomes one adapter among several, which converts the abandonment risk from a rewrite into a one-file change.Compatibility
Pin laravel/framework at ≤9 or vendor a fork under your namespace; never use --ignore-platform-reqs in production. Verify Guzzle major-version alignment (v6 vs v7) against the rest of the dependency graph. Confirm the CSP allows Google's script origin and that the widget loads behind your CDN/proxy.
Sequencing
Maintenance Assume near-zero upstream activity. Budget 1–2 engineer-days per quarter to track framework upgrades and advisories, and treat all patching as yours. Make the fork-vs-swap call explicitly at adoption time rather than discovering it during a Laravel 11 upgrade.
Support Community GitHub issues only; no vendor, no escalation path, no CVE process. An internal runbook (keys, rotation, fail-mode, rollback) is a launch prerequisite, not a nice-to-have.
Scaling Verification is one outbound HTTPS call per protected submission — negligible load on your infrastructure but a hard external dependency on latency and Google's quota. Nothing is cacheable (tokens are single-use). At high volume, apply the rule selectively to risky actions (registration, password reset, checkout) rather than globally, so you aren't paying the round trip on every search or comment.
Failure modes
Ramp-up A Laravel developer is productive in a few hours; CodeIgniter or native-PHP integrators need about a day. Add roughly one day for on-call runbook, dashboards, and privacy review. Total cost of ownership is dominated by maintenance, not initial integration.
Verdict
A tactically sound fit for a Laravel ≤9 application that needs CAPTCHA this quarter and can absorb it behind an internal interface. It is not a strategic bet: staleness plus single-maintainer risk make it a liability on a modern Laravel roadmap. Evaluate biscolab/laravel-recaptcha (v3) or Cloudflare Turnstile as the default, and reserve this package for existing v2 deployments where churn costs more than the risk. The high opportunity score reflects exactly this gap — the package is well-shaped but under-maintained, which is an opening for a maintained alternative rather than a reason to adopt.
How can I help you explore Laravel packages today?