Cloudflare Turnstile Alternative

The Cloudflare Turnstile Alternative. Independent, EU-hosted, invisible.

The alternative to Cloudflare Turnstile and turnstile replacement built for teams that want a turnstile alternative without a Cloudflare account. Turnstile is good if your stack lives on Cloudflare — TrustSig is the cloudflare turnstile alternative for everyone else. Independent EU vendor, hardware-level, cookieless, hosted in Germany.

50,000 requests/month free. Complete threat engine. No credit card, ever.

No Cloudflare account neededWorks with any infrastructureEU-hosted in Germany0 cookies
0vendor accounts required
0cookies set
5 minto migrate
Germanydata residency
01 Side by side

Turnstile alternative — side by side

Turnstile is a strong invisible option tied to Cloudflare's ecosystem. TrustSig delivers the same invisibility as an independent EU vendor — the cloudflare turnstile alternative compared on residency, vendor dependency and verify path.

CapabilityTrustSigCloudflare Turnstile
Vendor dependencyIndependent — no account elsewhereRequires a Cloudflare account
Infrastructure fitAny host, any CDN, any stackBest inside the Cloudflare ecosystem
Data residencyEU only (Germany)US-incorporated, global edge
User frictionNone — fully invisibleMostly invisible, can show a widget
Detection methodHardware-level deterministic signalsBehavioural + network reputation
Cookies / trackingZero cookies, zero PIISets a clearance cookie
Free tierFull engine, 50K req/mo, no cardFree, tied to Cloudflare onboarding
Server verificationLocal — sub-millisecond, no network callRound-trip to Cloudflare to verify
Strong
Partial
Weak / none
02 Why teams migrate

Why teams move off Turnstile

Turnstile is genuinely good. The friction is structural — it assumes Cloudflare, and many teams want their bot protection decoupled from a CDN and a US vendor.

It assumes Cloudflare

Turnstile is built to shine inside Cloudflare's ecosystem and needs a Cloudflare account. TrustSig has no such dependency — it works the same on Vercel, AWS, bare metal, or anywhere else.

US vendor, global edge

Cloudflare is US-incorporated with a global edge. For EU teams that need a clear single-jurisdiction answer, TrustSig processes only in Germany.

Decouple bot defense from your CDN

Tying detection to your CDN means a CDN change is also a security change. An independent layer keeps those decisions separate.

No clearance cookie

Turnstile sets a clearance cookie. TrustSig sets none, so it stays out of your consent flow and your cookie policy.

Deterministic local verify

verifyLocal() resolves on your own server with no outbound call to a third party on every request.

Full free engine

The free tier is the complete deterministic threat engine and 50,000 requests/month, with no credit card and no CDN onboarding.

03 Migration

Turnstile replacement in 5 minutes

The turnstile replacement path: remove the Turnstile widget and siteverify call; add the invisible scan and a local verify. Two npm packages, no infrastructure changes, no account elsewhere.

  1. Frontend — remove the widget
    // Before — Cloudflare Turnstile
    // <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" />
    // <div className="cf-turnstile" data-sitekey={SITE_KEY} />
    
    // After — TrustSig (no element, no Cloudflare account)
    import { useTrustSig } from "@trustsig/react"
    
    function ActionForm() {
      const { scan } = useTrustSig()
    
      const handleSubmit = async () => {
        const response = await scan()
        await fetch("/api/action", {
          headers: { "X-TrustSig-Response": response?.token || "" },
        })
      }
    }
  2. Backend — replace the verify call
    // Before — Turnstile (round-trip to Cloudflare)
    // await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", ...)
    
    // After — TrustSig (verified locally, zero latency)
    import { TrustSig } from "@trustsig/server"
    
    const ts = new TrustSig({ secretKey: process.env.TRUSTSIG_SECRET_KEY })
    
    app.post("/api/action", async (req, res) => {
      const token = req.headers["x-trustsig-response"]
    
      const result = ts.verifyLocal(token)
    
      if (result.action === "BLOCK")
        return res.status(403).json({ error: "Blocked" })
    })
04 Pricing

Start free. Stay free until you grow.

No card. EU-hosted on every tier.

Starter

€0free

For personal projects and sites getting started with bot protection.

  • 50,000 requests / month2 domains
  • Full threat protection suite
  • Bot farm blocking
  • No CAPTCHAs for visitors
  • Community support

Business

€63/mo · billed yearly

For established companies needing high-volume protection and priority SLA.

  • 750,000 requests / month25 domains • €5 per 100k extra reqs
  • Full threat protection suite
  • Bot farm blocking
  • No CAPTCHAs for visitors
  • Priority support

Enterprise: unlimited volume · SLAs · on-prem · dedicated support.

What counts as a check?

One check is a single verification request: a page view, form submit, or login attempt that TrustSig evaluates. You only spend a check when traffic actually hits a protected surface, so bot floods do not quietly drain your quota.

05 FAQ

Turnstile migration questions

No. TrustSig is an independent vendor with no relationship to Cloudflare. It works identically whether or not you use Cloudflare for anything.

Independent bot defense. No CDN lock-in.

Start free in minutes. No vendor account, EU-hosted, invisible. No credit card.