Turnstile is Cloudflare’s smart CAPTCHA alternative. It can be embedded into any website without sending traffic through Cloudflare and works without showing visitors a CAPTCHA.
This example shows how you can use Cloudflare Turnstile with your Next.js project. You can see a live version here.
Deploy the example using Vercel.
Important: When you import your project on Vercel, make sure to click on Environment Variables and set them to match your .env.local file.
Execute create-next-app
with npm, Yarn, or pnpm to bootstrap the example:
npx create-next-app --example cloudflare-turnstile cloudflare-turnstile-app
yarn create next-app --example cloudflare-turnstile cloudflare-turnstile-app
pnpm create next-app --example cloudflare-turnstile cloudflare-turnstile-app
Deploy it to the cloud with Vercel (Documentation).
- Go to the Cloudflare dashboard and select your account.
- Go to Turnstile.
- Select Add a site and fill out the form.
- Copy your Site Key and Secret Key.
To connect the app with Cloudflare Turnstile, you'll need to add the settings from your Cloudflare dashboard as environment variables
Copy the .env.local.example file in this directory to .env.local.
cp .env.local.example .env.local
Then, open .env.local and fill these environment variables:
NEXT_PUBLIC_CLOUDFLARE_TURNSTILE_SITE_KEY
CLOUDFLARE_TURNSTILE_SECRET_KEY