webman/captcha
A lightweight CAPTCHA plugin for the Webman PHP framework, offering image-based verification codes with session validation and configurable options. Easily add human verification to Webman routes and forms with minimal setup.
webman/captcha targets the webman runtime (Workerman-based), not Laravel. If your stack is Laravel, this is a framework mismatch and should be treated as a reference implementation rather than a drop-in dependency. If you are running webman services alongside Laravel, it's a legitimate fit for that slice of the estate.Consider it when:
Look elsewhere when:
mews/captcha (Laravel-native, built on gregwar/captcha), Laravel's rate limiter, or a managed provider. Do not force a webman package into a Laravel app; the glue code you'd write is the whole cost of adoption.Adoption guardrails if you proceed: pin the exact version, vendor or mirror the source, add your own integration tests, and write down the fork criteria up front. Budget a half-day for the "what if it's abandoned" contingency — it's cheap insurance on a package this size.
To executives: Captcha on our registration and login flows is a small, well-understood control that measurably reduces spam account creation and brute-force traffic. This package is MIT-licensed and self-hosted, so there's no per-request cost, no new vendor contract, and no third-party script on our pages. The trade-off is maturity: it's a small, low-adoption project, so we'd own the code if it stalls. Total exposure is low — a few days of integration and a documented exit path — but the framework caveat matters: it fits our webman services, not our Laravel applications, where we'd use a Laravel-native option instead.
To engineering: Evaluate as a vendored dependency, not a trusted upstream. It targets webman/Workerman, has near-zero adoption, and one maintainer — so pin, mirror, test, and be prepared to fork. Integration should be under two days. Pair it with rate limiting so we're not relying on the image challenge alone, and flag the accessibility gap now rather than at audit time. If we're a Laravel shop, this is a "no" for production and a "yes" only as a design reference — recommend mews/captcha or a managed provider instead.
How can I help you explore Laravel packages today?