core23/antispam-bundle
A Symfony bundle for stopping form spam with honeypots, submission timers, banned scripts, markup and phrases, plus URL counting. Configure reusable anti-spam profiles and apply them to any form. Compatible with PHP 8.2+ and Symfony 6.4, 7.x and 8.x.
First-order finding: despite the "Laravel/PHP package" framing, this is a Symfony bundle, not a Laravel package. That is a stack-fit decision that must be resolved before any of the above benefits apply to a Laravel estate.
Adopt when:
Look elsewhere when:
RateLimiter, custom validation rules), a maintained honeypot package (e.g. spatie/laravel-honeypot), or Cloudflare Turnstile / reCAPTCHA v3.Diligence flags to resolve before commitment:
core23/antispam-bundle), the repository (nucleos/NucleosAntiSpamBundle) and the README (omines/antispam-bundle) point at different lineage. Confirm the canonical, maintained package and whether you are adopting a fork or a renamed/abandoned project.For executives (one paragraph): Our public forms — signup, contact, newsletter and lead capture — are an unattended input channel, and every bot that gets through costs us in fake accounts, junk leads, support time and polluted metrics. This package is a low-cost way to close that gap if we are on Symfony: it is a drop-in, server-side library for our existing framework with no new infrastructure and no third-party tracking scripts (a privacy and legal win), and no redesign of the user journey for legitimate customers. Caveat to state plainly: this is a Symfony bundle, not a Laravel package, so for a Laravel estate it is a design reference rather than a direct dependency — the equivalent Laravel-native controls should be evaluated instead. Recommended ask: one sprint of engineering to instrument two forms, then a four-week measurement window on catch rate and false positives before deciding to roll out.
For engineering (summary): A Symfony-native bundle providing configurable, layered anti-spam mechanisms for Symfony Forms, wired in per-form via configuration rather than custom code — no front-end JS dependency, no external service, validation is server-side and testable. It is not installable in Laravel: the bundle registration, DI tags, form extensions and event subscribers assume a full Symfony kernel. If we do adopt, own these caveats: resolve the package lineage (Packagist name vs. repository vs. README), treat community adoption as negligible, and assume we may inherit maintenance. Therefore: pin the version, review the code, and wrap adoption behind our own form-level configuration/interface so mechanisms can be replaced (e.g. by Turnstile or edge bot management) without touching product code.
Decision requested: Approve a timeboxed spike with explicit exit criteria — confirmed stack fit, measured spam reduction, false-positive rate below an agreed conversion-impact threshold, and a single maintainer-agnostic integration point — after which we either expand to all public forms or revert. For a Laravel stack, redirect the spike to the Laravel-native equivalent and treat this package as prior art.
How can I help you explore Laravel packages today?