// the find
appleboy/react-recaptcha
A react.js reCAPTCHA for Google
A thin React wrapper around Google's reCAPTCHA v2 widget (checkbox, invisible, and audio/image challenge variants). It's for anyone who needs a form-spam gate on a React app and doesn't want to hand-roll the script-loading and ref plumbing themselves.
Covers all three reCAPTCHA v2 render modes (automatic, explicit, invisible) with a consistent prop API, and exposes imperative reset()/execute() via callback refs rather than string refs. The README has real working examples (plain webpack, Gatsby) instead of just a prop table. At 643 stars/96 forks it's clearly been used in production by a fair number of people, which counts for something with a captcha integration.
Last push was January 2023 and it never added reCAPTCHA v3 or Enterprise support, so it's stuck on the checkbox-era API while Google has pushed everyone toward score-based v3. The onloadCallback/verifyCallback wiring goes through named global functions on window (onloadCallbackName/verifyCallbackName), which is exactly the kind of global-namespace collision bug you'd expect to hit if you mount more than one instance or use it inside a component that unmounts/remounts. No TypeScript definitions ship in the package, and the test suite is a single file in __tests__ — not much confidence the ref-based reset/execute paths are actually exercised. You're also loading the google recaptcha script tag yourself in every example, so there's no real guard against double-injecting it if the component mounts more than once.