Capcat®

Put Capcat into real scenarios

Every scenario below talks to a production verification service running on Cloudflare Workers. Check the box, and a SHA-256 proof of work quietly runs in your browser in the background — the button unlocks the moment it's done. Click submit, and the server performs a real siteverify check, echoing the raw API response back to you. You can also skip the visible component entirely — see invisible mode below.

01 /

Comments & guestbooks

Blogs, communities, product reviews — spam bots survive on bulk submissions. Lock the post button behind verification, and spamming instantly becomes too expensive to bother with.

02 /

Account signup

Bulk registration and credential-stuffing scripts can try hundreds or thousands of times per second. Every submission now has to pay real compute and pass an environment check first — script throughput collapses and costs skyrocket, while a real user just checks a box.

03 /

AI Q&A / expensive endpoints

Every inference call has a real cost. Put verification in front of the request, and scripts hammering the endpoint have to pay compute for every single call — abuse gets priced out, without getting in genuine users' way.

04 /

Invisible mode

Don't want users to see any verification widget at all? The programmatic mode calls new Cap().solve() from your own JS — the moment a user clicks your button, it requests a challenge, solves it, and redeems the token in the background. Perfect for lightweight actions like claiming a coupon, liking, or searching, with zero visible friction.

New-user exclusive: $30 off $100 coupon × 1

There's no checkbox in this scenario — the moment you click the button, it requests a challenge and solves it in the background. The user just sees their action complete.

05 /

Auto theming

Add data-cap-theme="auto" and the widget samples the surrounding page — font, colors, borders, corner radius — and grows into your site's look. All three styles below are the exact same component with the same single line of markup. For finer control, the full set of --cap-* CSS variables and data-cap-i18n-* label attributes still apply, and always win over sampling.

Editorial

Dark

Rounded

<cap-widget data-cap-theme="auto"
            data-cap-api-endpoint="…"></cap-widget>

/* need finer control? --cap-* CSS variables still
   apply and win over sampling; swap labels via data-cap-i18n-* */

This demo enables proof of work and instrumentation environment checks (headless/automated browsers get blocked); form content is never uploaded — submitting only sends the cap-token to the verification service to complete one real siteverify check.

Add it to your own project