PHPackages                             tritum/turnstile - 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. tritum/turnstile

ActiveTypo3-cms-extension

tritum/turnstile
================

TYPO3 Extension to add Turnstile to EXT:form

v2.0.1(2mo ago)56.3k↑166.7%8[3 issues](https://github.com/tritum/turnstile/issues)[1 PRs](https://github.com/tritum/turnstile/pulls)GPL-2.0-or-laterPHPPHP ^8.1CI passing

Since Sep 27Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/tritum/turnstile)[ Packagist](https://packagist.org/packages/tritum/turnstile)[ Docs](https://github.com/tritum/turnstile)[ RSS](/packages/tritum-turnstile/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (40)Versions (5)Used By (0)

[![TYPO3 extension](https://camo.githubusercontent.com/902be6546591a5e151ed2c8da85f66531e9414c1b32017775f975a3f74558f9b/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f657874656e73696f6e2f736869656c64732e737667)](https://camo.githubusercontent.com/902be6546591a5e151ed2c8da85f66531e9414c1b32017775f975a3f74558f9b/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f657874656e73696f6e2f736869656c64732e737667)[![Total downloads](https://camo.githubusercontent.com/b187a426dbe0a09b1e8fd432954bc354ab23a757e34234313668e162b01bf9fd/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f646f776e6c6f6164732f736869656c64732e737667)](https://camo.githubusercontent.com/b187a426dbe0a09b1e8fd432954bc354ab23a757e34234313668e162b01bf9fd/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f646f776e6c6f6164732f736869656c64732e737667)[![Stability](https://camo.githubusercontent.com/8b0b3a2e8faee5d710c54f47b06d952a9b823ea0f846e55992012f9ba5dc0eea/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f73746162696c6974792f736869656c64732e737667)](https://camo.githubusercontent.com/8b0b3a2e8faee5d710c54f47b06d952a9b823ea0f846e55992012f9ba5dc0eea/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f73746162696c6974792f736869656c64732e737667)[![ci](https://github.com/tritum/turnstile/actions/workflows/ci.yml/badge.svg)](https://github.com/tritum/turnstile/actions/workflows/ci.yml)[![phpstan](https://camo.githubusercontent.com/f4e565aadcb2a1d2085c46a80df73c58e3829478d1f3586aec9a95ce2c5d505a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c766c2532306d61782d626c756576696f6c6574)](https://phpstan.org/)[![TYPO3 versions](https://camo.githubusercontent.com/680032ff6435d3f1388d113f794c3b28910c370898dba403080eb95102feafa5/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f7479706f332f736869656c64732e737667)](https://camo.githubusercontent.com/680032ff6435d3f1388d113f794c3b28910c370898dba403080eb95102feafa5/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f7479706f332f736869656c64732e737667)[![Latest version](https://camo.githubusercontent.com/3491aaa482779e75169348af59253cac60a841e23b0be57de151af0e3601affa/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f76657273696f6e2f736869656c64732e737667)](https://camo.githubusercontent.com/3491aaa482779e75169348af59253cac60a841e23b0be57de151af0e3601affa/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f7475726e7374696c652f76657273696f6e2f736869656c64732e737667)

TYPO3 Extension to add Turnstile to EXT:form
============================================

[](#typo3-extension-to-add-turnstile-to-extform)

This TYPO3 extension provides a Turnstile integration for the TYPO3 Form Framework (EXT:form). Turnstile is a free captcha alternative provided by Cloudflare. It is GDPR compatible. For more information check the [Turnstile website](https://www.cloudflare.com/products/turnstile/).

We were inspired by an article published on [heise.de](https://www.heise.de/news/Fast-immer-schneller-immer-korrekter-Bots-schlagen-Menschen-bei-Captchas-9240739.html). The article states that bots are better than ever in solving captchas. In 2022, Cloudflare released Turnstile as an alternative to captchas, see [1](https://blog.cloudflare.com/turnstile-private-captcha-alternative/) and [2](https://www.heise.de/news/Nie-mehr-Ampeln-Enten-und-Busse-suchen-Cloudflare-startet-CAPTCHA-Konkurrenten-7279154.html).

Quick Setup
===========

[](#quick-setup)

1. Install the extension and activate it.
2. Add the static TypoScript configuration to your TypoScript template.
3. Get a Turnstile `site_key` and a `privateKey`. Set the TypoScript Constants appropriately.
4. Add a `Turnstile` element to a form.
5. All done!

Get Turnstile keys for your website
-----------------------------------

[](#get-turnstile-keys-for-your-website)

You need two API keys from Cloudflare. Retrieving those keys is free of charge. Open your [Cloudflare dashboard](https://dash.cloudflare.com/?to=/:account/turnstile). Add a new entry for your website. In order to do so, provide a name of the website and the domain. This also works for multiple environments, just provide the domain like `tritum.de`. Any subdomain or local domain will also be supported.

Furthermore, you can choose between three different modes for the challenge. For more information see: .

TypoScript Constants
--------------------

[](#typoscript-constants)

Set the following TypoScript Constants:

```
plugin.tx_turnstile {
    settings {
        # Get API keys at https://dash.cloudflare.com/?to=/:account/turnstile
        siteKey =
        privateKey =
    }
}

```

Environment variables
---------------------

[](#environment-variables)

As an alternative to the TypoScript configuration, you can also use environment variables:

- `TURNSTILE_SITE_KEY`
- `TURNSTILE_PRIVATE_KEY`

Content Security Policy
=======================

[](#content-security-policy)

If you are using CSP, make sure to adjust them accordingly:

- script-src should include `https://challenges.cloudflare.com`
- frame-src should include `https://challenges.cloudflare.com`
- style-src should include `https://challenges.cloudflare.com`

Privacy
=======

[](#privacy)

Make sure to inform your users of your usage of Turnstile and what that means.

For more information see: .

Help &amp; Support
==================

[](#help--support)

Please use GitHub for issue tracking. For more information see: .

Kudos
=====

[](#kudos)

A big kudos to [Ralf Zimmermann](https://www.waldhacker.dev/). He is the brain behind the TYPO3 Form Framework and created this extension initially. TRITUM came up with the idea and maintains this peace of fine coding.

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance74

Regular maintenance activity

Popularity31

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 82% 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 ~447 days

Total

3

Last Release

71d ago

Major Versions

1.0.0 → v2.0.02026-03-04

PHP version history (2 changes)1.0.0PHP ^8.1 | ^8.2

v2.0.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1932663?v=4)[TRITUM](/maintainers/tritum)[@tritum](https://github.com/tritum)

---

Top Contributors

[![dreistromland-aj](https://avatars.githubusercontent.com/u/260665881?v=4)](https://github.com/dreistromland-aj "dreistromland-aj (41 commits)")[![tritum](https://avatars.githubusercontent.com/u/1932663?v=4)](https://github.com/tritum "tritum (6 commits)")[![waldhacker1](https://avatars.githubusercontent.com/u/4954582?v=4)](https://github.com/waldhacker1 "waldhacker1 (3 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/tritum-turnstile/health.svg)

```
[![Health](https://phpackages.com/badges/tritum-turnstile/health.svg)](https://phpackages.com/packages/tritum-turnstile)
```

###  Alternatives

[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M49](/packages/fluidtypo3-vhs)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1481.0k](/packages/eliashaeussler-typo3-form-consent)[in2code/in2publish_core

Content publishing extension to connect stage and production server

40135.8k](/packages/in2code-in2publish-core)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

20229.9k](/packages/eliashaeussler-typo3-warming)

PHPackages © 2026

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