sudiptpa/filament-turnstile
Filament Turnstile integrates Cloudflare Turnstile CAPTCHA into Filament forms, helping protect login, registration, and custom forms from bots and spam with simple configuration and lightweight setup for Laravel Filament apps.
TurnstileKeyResolverContract is the extension point for per-tenant/per-brand site keys — the pattern you need for a marketplace, agency, or white-label deployment. Note the v1.1 caveat: the Blade component reads keys from config, so a custom resolver means you own key injection yourself.>=8.2 to >=8.2,<8.6, so PHP 8.5 is supported and the package won't pin your runtime upgrade roadmap. The explicit upper bound is a deliberate support policy, not an oversight — plan a dependency review before PHP 8.6.Consider it when:
TurnstileKeyResolverContract and handle key injection yourself — the package gives you the seam, not the finished multi-tenant behaviour.Look elsewhere — or budget extra work — when:
For executives: A small, low-cost dependency that puts bot protection on our public forms using Cloudflare Turnstile — a service likely already adjacent to our infrastructure. It removes an in-house build, avoids adding Google reCAPTCHA to our privacy surface, and carries no new contract or procurement cycle. The latest release is maintenance only: broader PHP version support, no breaking changes, no migration work. Principal risk is that it is a young, single-maintainer open-source package; that risk is bounded because the configuration is standard Turnstile and the widget can be replaced with contained effort.
For engineering: One Composer dependency, config-driven site/secret keys, a Blade component for Filament forms, and TurnstileKeyResolverContract as the extension seam for tenant-specific keys. v1.1 relaxes the PHP constraint to >=8.2,<8.6 — no code changes, no breaking changes, safe to adopt alongside a PHP 8.5 upgrade. Two things to note in the implementation: the component reads keys from config, so any custom resolver must also handle key injection; and the upper bound on PHP means we should schedule a dependency check before moving to 8.6. Recommended posture: adopt, pin the minor version, and keep a short exit note describing the swap path to an alternative Turnstile integration.
How can I help you explore Laravel packages today?