tito10047/altcha-bundle
A Symfony bundle that integrates ALTCHA, a privacy-friendly proof-of-work CAPTCHA alternative, into your forms. Protect submissions from spam and bots without third-party tracking, cookies, or external services, with simple configuration and customizable widget options.
Content-Security-Policy (a common audit finding, and a prerequisite for many enterprise security questionnaires) can now adopt ALTCHA without a policy exception. That unblocks rollout in environments where the previous release would have required weakening CSP.altcha-bundle), not a Laravel package. For a Laravel codebase the decision is really about the underlying ALTCHA PHP/server library plus a thin in-house integration; the bundle's releases are useful signal for the health of that ecosystem, but they are not drop-in Laravel work.Consider it when:
Look elsewhere when:
To executives: We can replace third-party CAPTCHA on our public forms with a self-hosted, privacy-preserving alternative. It removes a tracker from our pages, reduces consent and legal exposure, and avoids per-request vendor fees. The cost is a small open-source dependency and a modest integration effort — worth piloting on one low-risk form before wider rollout.
To engineering: Adopt altcha-bundle 3.1.0 or later — it adds CSP support, which means we don't have to carve an exception into our security headers, and it fixes a type error in 3.0.0. Caveat: this is a Symfony bundle. If the target service is Laravel, we integrate the underlying ALTCHA PHP library ourselves behind an internal ChallengeVerifier interface so the dependency stays swappable. Pin the version, add it to our dependency-review list given the single-maintainer risk, and pair it with existing rate limiting rather than treating it as the sole control.
Recommendation: Approve a scoped pilot on one form. Success criteria: challenge pass rate for legitimate users, measured drop in form-spam volume, no CSP violations, and a working fallback path if the package is abandoned. Revisit for broader rollout once the pilot data is in.
How can I help you explore Laravel packages today?