PHPackages                             darvis/livewire-honeypot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. darvis/livewire-honeypot

ActiveLibrary[Security](/categories/security)

darvis/livewire-honeypot
========================

Lightweight honeypot + time-trap protection for Livewire 3 forms

v1.0.4(3mo ago)1346↓58.3%1MITPHPPHP ^8.2

Since Oct 23Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/ArvidDeJong/livewire-honeypot)[ Packagist](https://packagist.org/packages/darvis/livewire-honeypot)[ RSS](/packages/darvis-livewire-honeypot/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (5)Dependencies (6)Versions (6)Used By (0)

darvis/livewire-honeypot
========================

[](#darvislivewire-honeypot)

Lightweight **honeypot + time‑trap** protection for **Livewire 3** (Laravel 11).
Blocks simple bots without CAPTCHAs, privacy‑friendly and unobtrusive.

Features
--------

[](#features)

- 🪤 Honeypot bait field (`present|size:0`)
- ⏱️ Time‑trap (minimum fill time, default 5 seconds)
- 🧩 Works as **Trait** for Livewire and as **Service** for controllers/APIs
- 🧱 Blade component `` for easy inclusion
- 🌍 Multilingual (English &amp; Dutch included)
- ⚙️ Fully configurable via config file
- 🔌 Zero dependencies beyond Livewire 3 / Laravel 11

Installation
------------

[](#installation)

```
composer require darvis/livewire-honeypot
```

(For local development, you can add a `path` repository in your app's `composer.json`.)

Usage — Livewire (Trait)
------------------------

[](#usage--livewire-trait)

1. In your Livewire component:

```
use Darvis\LivewireHoneypot\Traits\HasHoneypot;

class ContactForm extends Component
{
    use HasHoneypot;

    public string $name = '';
    public string $email = '';
    public string $message = '';

    public function submit(): void
    {
        $this->validate([
            'name' => 'required|string|min:2',
            'email' => 'required|email',
            'message' => 'required|string|min:10',
        ]);

        $this->validateHoneypot();

        // process form ...

        $this->reset(['name','email','message']);
        $this->resetHoneypot();
    }
}
```

2. In your Blade (or Flux) view, add the component (place anywhere inside the form):

```

```

Usage — Controller / API (Service)
----------------------------------

[](#usage--controller--api-service)

```
use Darvis\LivewireHoneypot\Services\HoneypotService;

public function store(Request $request, HoneypotService $honeypot)
{
    $honeypot->validate($request->only('hp_website', 'hp_started_at', 'hp_token'));
    // process form ...
}
```

To generate fields server‑side (non‑Livewire forms):

```
$hp = app(Darvis\LivewireHoneypot\Services\HoneypotService::class)->generate();
// pass $hp to your view to prefill hidden inputs
```

Configuration
-------------

[](#configuration)

Publish the config file to customize settings:

```
php artisan vendor:publish --tag=livewire-honeypot-config
```

Available options in `config/livewire-honeypot.php`:

- **`minimum_fill_seconds`** - Minimum time (in seconds) before form submission (default: `5`)
- **`field_name`** - Name of the honeypot field (default: `hp_website`)
- **`token_min_length`** - Minimum token length for validation (default: `10`)
- **`token_length`** - Length of generated token (default: `24`)

All settings can also be configured via environment variables:

```
HONEYPOT_MINIMUM_FILL_SECONDS=5
HONEYPOT_FIELD_NAME=hp_website
HONEYPOT_TOKEN_MIN_LENGTH=10
HONEYPOT_TOKEN_LENGTH=24
```

Translations
------------

[](#translations)

The package includes English and Dutch translations. Publish them to customize error messages:

```
php artisan vendor:publish --tag=livewire-honeypot-translations
```

Available translation keys in `resources/lang/vendor/livewire-honeypot/{locale}/validation.php`:

- `spam_detected` - Error when honeypot field is filled
- `submitted_too_quickly` - Error when form is submitted too fast
- `honeypot_label` - Label text for the honeypot field

Publishing views (optional)
---------------------------

[](#publishing-views-optional)

Customize the honeypot component:

```
php artisan vendor:publish --tag=livewire-honeypot-views
```

Throttling (recommended)
------------------------

[](#throttling-recommended)

Add request rate‑limiting on your form route:

```
Route::get('/contact', \App\Livewire\ContactForm::class)->middleware('throttle:10,1');
```

License
-------

[](#license)

MIT © Arvid de Jong ()

###  Health Score

43

—

FairBetter than 90% of packages

Maintenance82

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~37 days

Total

5

Last Release

98d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/24c445b7580e09ff72b8340d1423886148c4c8a249d0a828c98285109e7e5663?d=identicon)[darvis](/maintainers/darvis)

---

Top Contributors

[![ArvidDeJong](https://avatars.githubusercontent.com/u/7394837?v=4)](https://github.com/ArvidDeJong "ArvidDeJong (6 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/darvis-livewire-honeypot/health.svg)

```
[![Health](https://phpackages.com/badges/darvis-livewire-honeypot/health.svg)](https://phpackages.com/packages/darvis-livewire-honeypot)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[team-nifty-gmbh/tall-datatables

Server-side rendered datatables for Laravel and Livewire

1319.7k3](/packages/team-nifty-gmbh-tall-datatables)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
