syntaqxEmail sign-up has a Cloudflare Turnstile check, when it is set up. With TURNSTILE_SITE_KEY (a var in apps/web/wrangler.jsonc: the widget's public site key) and the TURNSTILE_SECRET secret both set, the sign-up form draws Turnstile's widget above its button and the server checks its answer with Cloudflare's siteverify before identity is asked; a missing or refused answer gets a plain error. With either unset nothing changes, so an installation of its own and local development sign up without it; when Cloudflare cannot be reached the sign-up goes ahead, the rate limit and email confirmation still in its way. The page's policy allows Turnstile's script and frame from challenges.cloudflare.com, and nothing else is framed. The self-hosted compose file and configs pass both keys through. The accounts and self-hosting guides say so.f68a2ddHistory