grantholle/laravel-altcha
Laravel ALTCHA offers a privacy-friendly, proof-of-work CAPTCHA alternative for Laravel apps. Add the Blade widget, verify submissions server-side, and configure challenges without third-party tracking or frustrating image puzzles.
laravel-altcha is a thin Laravel integration for Altcha, a self-hosted, privacy-first proof-of-work challenge. It directly informs the build-vs-buy decision between reCAPTCHA/hCaptcha/Turnstile (third-party, data-sharing, privacy-compliance overhead) and an in-house or self-hosted challenge mechanism.altcha-org/altcha v2 is an upstream major-version move behind the wrapper. This is an engineering-effort line item (regression testing on challenge generation/verification, widget JS compatibility) and a reason to pin versions in the roadmap.Consider adopting when:
Look elsewhere when:
altcha-org/altcha v2 and the wrapper as dependencies you must track and patch.Migration caution for 2.3.0: treat the altcha-org/altcha v2 upgrade as a potentially breaking dependency change. Verify challenge payload shape, verification response handling, and any published config/Blade assets in staging before rollout. Single-use mode is opt-in, so default behavior should be unchanged — confirm that explicitly.
To executives: We can replace paid, privacy-sensitive CAPTCHA with a self-hosted challenge that keeps user data in our systems. That reduces vendor spend and third-party data-sharing risk on our highest-volume forms. The 2.3.0 release adds one-time-use challenges, which closes the main functional gap (a solved challenge being reused) — a meaningful security improvement for signup and account-recovery flows at effectively no licensing cost. The trade-off is that we own the operational reliability and upgrade tracking of a small open-source dependency rather than buying a supported service.
To engineering: This is a thin Laravel wrapper over altcha-org/altcha, so the integration surface is config, a verification rule/middleware, and a Blade/widget include — low adoption cost. 2.3.0 bumps the upstream library to v2 and adds an opt-in single-use solutions mode (replay protection, requires server-side state with expiry). Action items: pin the version, run a regression pass on challenge issue/verify and the front-end widget, validate that single-use mode is genuinely opt-in and defaults off, and budget for tracking upstream v2 changes since this is a small maintainer team. Do not position it as a bot-detection platform; it is a cost-raising control that should sit alongside rate limiting and existing abuse monitoring.
How can I help you explore Laravel packages today?