PHPackages                             comvation/fusionform-hcaptcha - 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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. comvation/fusionform-hcaptcha

ActiveNeos-package[Validation &amp; Sanitization](/categories/validation)

comvation/fusionform-hcaptcha
=============================

hCaptcha field and validator for Neos.Fusion.Form

v1.2.0(1mo ago)0136MITPHPPHP ^8.2

Since Jul 21Pushed 3w agoCompare

[ Source](https://github.com/Comvation/fusionform-hcaptcha)[ Packagist](https://packagist.org/packages/comvation/fusionform-hcaptcha)[ RSS](/packages/comvation-fusionform-hcaptcha/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (3)Dependencies (4)Versions (6)Used By (0)

hCaptcha for Neos.Fusion.Form
=============================

[](#hcaptcha-for-neosfusionform)

Integrates the hCaptcha into any Neos.Fusion.Form.

Inspired by sitegeist/Sitegeist.FusionForm.FriendlyCaptcha.

Requirements
============

[](#requirements)

- Neos
- Composer

Supported and Tested Versions
-----------------------------

[](#supported-and-tested-versions)

Neos from 8.0 up to and including 9.0.x.

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

[](#installation)

Add the plugin, and install the dependencies:

```
composer require comvation/fusionform-hcaptcha
composer install
```

Update / Breaking Changes
-------------------------

[](#update--breaking-changes)

When you update from v1.1.0 or lower, and you are using a `selector` for the submit button, you must update your settings to use a `formSelector`instead.

See [Using a Form Selector](#using-a-form-selector) below.

Usage
-----

[](#usage)

Add the captcha field and validator to your form content and schema, respectively:

```
prototype(Vendor.Site:RuntimeForm) < prototype(Neos.Fusion.Form:Runtime.RuntimeForm) {
  process {
    content = afx`
      [...your form contents...]

    `
    schema {
      [...your schema entries...]

      h-captcha-response = ${Form.Schema.string().isRequired()}
      h-captcha-response.@process.captchaValidator = ${value.validator('Comvation.FusionForm.HCaptcha:HCaptcha')}
    }
  }
  action { [no changes required] }
}

```

Add the key and secret, as well as other desired configuration to your environment specific Settings.yaml.

Note: Only a few selected configuration options are available in the settings for now.

```
Comvation:
  FusionForm:
    HCaptcha:
      siteKey: ''
      siteSecret: ''
      size: 'invisible' # optional, default is "normal"
      theme: 'dark' # optional, default is "light"
```

See [hCaptcha docs](https://docs.hcaptcha.com/#integration-testing-test-keys)for details on the available options, as well as test keys.

Using a Form Selector
---------------------

[](#using-a-form-selector)

By default, the plugin hooks into the first form on the page using `document.forms[0]`.

If the intended one isn't the first, `formSelector` should be used. For example:

```
...
...
...
...
...

```

To choose the second form, add the matching selector to your settings:

```
Comvation:
  FusionForm:
    HCaptcha:
      formSelector: form.i-want-you

```

Note that the button `selector` setting is no longer supported after v1.1.0.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance92

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87% 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 ~113 days

Total

4

Last Release

55d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1a87f7310cb2621e4b4cb03f5a29182fec334c100b9fdfb844cf3d59be6e5106?d=identicon)[comvation](/maintainers/comvation)

---

Top Contributors

[![soeren-san](https://avatars.githubusercontent.com/u/100858270?v=4)](https://github.com/soeren-san "soeren-san (20 commits)")[![olimination](https://avatars.githubusercontent.com/u/662924?v=4)](https://github.com/olimination "olimination (2 commits)")[![ComvationAG](https://avatars.githubusercontent.com/u/29976159?v=4)](https://github.com/ComvationAG "ComvationAG (1 commits)")

### Embed Badge

![Health badge](/badges/comvation-fusionform-hcaptcha/health.svg)

```
[![Health](https://phpackages.com/badges/comvation-fusionform-hcaptcha/health.svg)](https://phpackages.com/packages/comvation-fusionform-hcaptcha)
```

###  Alternatives

[neos/demo

Site package for the Neos Demo Site

18191.3k12](/packages/neos-demo)[sandstorm/neostwofactorauthentication

1328.7k](/packages/sandstorm-neostwofactorauthentication)[neos/neos

An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users.

1151.0M838](/packages/neos-neos)[neos/neos-base-distribution

Neos Base Distribution

4466.7k](/packages/neos-neos-base-distribution)[sitegeist/taxonomy

Manage vocabularies and taxonomies as separate node-hierarchy.

1596.9k3](/packages/sitegeist-taxonomy)[sitegeist/lostintranslation

Automatic content translations for Neos using the DeepL Api

1343.3k4](/packages/sitegeist-lostintranslation)

PHPackages © 2026

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