Turnstile + Worker rate limiting
Two ways of presenting the same Turnstile check, the data the backend receives after each solve, and per-device rate limiting in the same Worker.
1. Invisible loading step
The visitor only sees "Loading...". Turnstile runs in the background and the page continues on its own.
Open the protected page2. Visible device check
The widget is shown on a page that looks like a device check before continuing.
Open the device check3. Rate limiting settings
Successful solves are counted per Ephemeral ID (or per IP if Ephemeral ID isn't enabled) in a 5-minute window. Click "Solve again" on the result page to create new solves.