{"id":35878347,"url":"https://github.com/isap-ou/statamic-honeypot","last_synced_at":"2026-01-15T03:46:27.457Z","repository":{"id":332416677,"uuid":"1130448973","full_name":"isap-ou/statamic-honeypot","owner":"isap-ou","description":"A lightweight, no-CAPTCHA spam protection module that silently blocks bots without disrupting real users.","archived":false,"fork":false,"pushed_at":"2026-01-08T18:11:57.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T20:40:20.146Z","etag":null,"topics":["honeypot","spam-protection","statamic","statamic-addon"],"latest_commit_sha":null,"homepage":"https://statamic.com/addons/isapp/honeypot-spam-protection","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isap-ou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-08T14:20:28.000Z","updated_at":"2026-01-08T18:11:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/isap-ou/statamic-honeypot","commit_stats":null,"previous_names":["isap-ou/statamic-honeypot"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/isap-ou/statamic-honeypot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isap-ou%2Fstatamic-honeypot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isap-ou%2Fstatamic-honeypot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isap-ou%2Fstatamic-honeypot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isap-ou%2Fstatamic-honeypot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isap-ou","download_url":"https://codeload.github.com/isap-ou/statamic-honeypot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isap-ou%2Fstatamic-honeypot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28417667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:25:19.714Z","status":"ssl_error","status_checked_at":"2026-01-14T10:22:49.371Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["honeypot","spam-protection","statamic","statamic-addon"],"created_at":"2026-01-08T17:19:06.898Z","updated_at":"2026-01-15T03:46:27.450Z","avatar_url":"https://github.com/isap-ou.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Honeypot Spam Protection\n\n\u003e ⚠️ **Important — Commercial addon**  \n\u003e This addon is paid software. You may use it for free during development, but you must purchase a valid license from the [Statamic Marketplace](https://statamic.com/marketplace) before deploying it to a production environment.\n\n## Introduction\n\n**Honeypot Spam Protection** is a commercial Statamic addon that provides a native Statamic integration layer for the open-source package [`spatie/laravel-honeypot`](https://github.com/spatie/laravel-honeypot).\n\nThis addon does **not** replace or modify Spatie’s package. It connects Statamic’s form system to the existing honeypot and time-based spam protection logic provided by Spatie and exposes it in a way that fits naturally into Statamic projects.\n\n---\n\n## ⚠️ Known issue in Statamic ≤ 5.70\n\nStatamic versions **up to and including 5.70** contain a bug that prevents the honeypot JavaScript driver from working correctly with Alpine-powered forms.\n\nIf you need a working Alpine.js integration, apply the upstream Statamic patch from PR **#13463**.\n\nPatch URL:\n\n```\nhttps://patch-diff.githubusercontent.com/raw/statamic/cms/pull/13463.patch\n```\n\nAfter applying the patch, use `js=\"honeypot\"` on your Statamic form as documented below.\n\n---\n\n## What this addon does\n\nThis addon makes it possible to use `spatie/laravel-honeypot` inside Statamic without having to wire it up manually in Laravel.\n\nIt provides:\n\n- A Statamic-native way to enable honeypot protection for forms\n- Automatic integration with Statamic form submissions\n- Access to all configuration options provided by `spatie/laravel-honeypot`\n\nThe spam detection logic itself is **entirely provided by Spatie’s package**.  \nThis addon is responsible only for the Statamic integration layer.\n\n---\n\n## How it works (high level)\n\nInternally, this addon installs and uses the Composer package:\n\n```\nspatie/laravel-honeypot\n```\n\nSpatie’s package provides:\n- Hidden honeypot fields\n- Time-based submission protection\n- Request validation and spam detection\n\nThis Statamic addon:\n- Loads the Spatie package\n- Connects it to Statamic’s form handling pipeline\n- Applies the honeypot checks when Statamic forms are submitted\n- Registers Spatie's honeypot middleware in the application's web middleware group by default\n\nNo changes are made to Spatie’s code, and no part of their package is forked or modified.\n\n---\n\n## Installation\n\nInstall the addon via Composer:\n\n```\ncomposer require isapp/statamic-honeypot\n```\n\nAfter installation, the Spatie Honeypot package will be available to your Statamic application through this addon.\n\n---\n\n## Configuration\n\nThis addon uses the standard configuration file provided by `spatie/laravel-honeypot`.\n\nAll enable/disable behavior is controlled by Spatie's configuration. When honeypot protection is enabled in Spatie's config, the Spatie honeypot middleware is active. When it is disabled, no honeypot checks are performed. This addon does not introduce a separate on/off switch.\n\nAll configuration options (field names, time limits, enabled/disabled state, etc.) are defined and documented by Spatie and remain unchanged.\n\nYou can publish and adjust the configuration file as you would when using `spatie/laravel-honeypot` directly in Laravel.\n\n---\n\n## Using it in Statamic\n\nThis addon integrates the Spatie honeypot system into Statamic’s form system.\n\nYou do **not** need to use Statamic’s built-in honeypot or spam protection features.  \nThis addon provides its own integration layer based on Spatie’s package.\n\n### Antlers\n\nTo enable honeypot protection on a Statamic form, include the tag inside your form:\n\n```antlers\n{{ isapp:honeypot }}\n```\n\nThere is **no automatic injection**. You must add the tag to each form you want to protect.\n\n#### Alpine.js\n\nIf you are using Statamic's Alpine-driven form features (via Statamic's `js` form driver), follow the same approach as in the Statamic documentation, but use `js=\"honeypot\"` instead of `js=\"alpine\"` on your form tag.\n\nExample:\n\n```antlers\n{{ form:contact js=\"honeypot\" }}\n    {{ isapp:honeypot }}\n{{ /form:contact }}\n```\n\n#### Precognition\n\nIf you are using Statamic **Precognition** with Antlers forms, you must explicitly enable it on the honeypot tag:\n\n```antlers\n{{ isapp:honeypot is-precognition=\"true\" }}\n```\n\nThis is required due to how Statamic's Precognition form driver works.\n\n### Blade\n\n#### Simple Blade forms (Spatie)\n\nFor simple Blade forms (outside of Statamic's form tags), you can use the default Blade component or directive provided by `spatie/laravel-honeypot` (exactly as shown in Spatie's documentation):\n\n```blade\n\u003cform method=\"POST\" action=\"{{ route('contactForm.submit') }}\"\u003e\n    \u003cx-honeypot /\u003e\n    \u003cinput name=\"myField\" type=\"text\"\u003e\n\u003c/form\u003e\n```\n\nAlternatively:\n\n```blade\n\u003cform method=\"POST\" action=\"{{ route('contactForm.submit') }}\"\u003e\n    @honeypot\n    \u003cinput name=\"myField\" type=\"text\"\u003e\n\u003c/form\u003e\n```\n\n#### Alpine.js + Statamic forms (Blade templates)\n\nIf you are rendering Statamic forms inside Blade templates and you are using Statamic's Alpine-driven form features (via `js=\"honeypot\"` on the form tag), use the Statamic tag component provided by this addon.\n\nImportant: in this Statamic + Alpine scenario, use `\u003cs:isapp:honeypot /\u003e` (this addon), not Spatie’s Blade component/directive.\n\n```blade\n\u003cs:form:contact js=\"honeypot\"\u003e\n    \u003cs:isapp:honeypot /\u003e\n    ...\n\u003c/s:form:contact\u003e\n```\n\n##### Precognition\n\nWhen using Statamic **Precognition** in Blade templates, you must pass the `is-precognition` flag to the honeypot component:\n\n```blade\n\u003cs:isapp:honeypot is-precognition /\u003e\n```\n\nThis is required due to limitations in Statamic's Precognition form driver.\n\n---\n\n## How spam is detected\n\nAll spam detection is handled by `spatie/laravel-honeypot`.\n\nThat includes:\n- Detecting filled honeypot fields\n- Detecting submissions that are too fast\n- Rejecting or flagging suspicious requests\n\nThis addon does not implement its own spam logic. It simply ensures that Statamic form submissions pass through Spatie’s honeypot validation.\n\n---\n\n## Compatibility\n\nThis addon is designed specifically for Statamic and integrates with its form handling system.\n\nIt does not provide honeypot protection for generic Laravel Blade forms or third-party form builders.\n\n---\n\n## Credits \u0026 Licensing\n\nThis addon uses the open-source package:\n\n**spatie/laravel-honeypot**  \nCopyright © Spatie  \nLicensed under the MIT License\n\nSpatie’s package remains fully open-source and is distributed under its original license.\n\nThis Statamic addon is a **commercial product** that provides a Statamic-specific integration layer on top of Spatie’s open-source package. No part of Spatie’s code is sold, relicensed, or restricted.\n\n---\n\n## Support\n\nSupport for this Statamic addon is provided by [ISAPP](https://isapp.be).\n\nFor issues related to the underlying honeypot logic, please refer to the Spatie package and its documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisap-ou%2Fstatamic-honeypot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisap-ou%2Fstatamic-honeypot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisap-ou%2Fstatamic-honeypot/lists"}