Self-hosted CAPTCHAfor the modern web.

trycap.dev · 2026-05-16 · by Long Nguyen ·generic
Cap is a lightweight, modern open-source CAPTCHA alternative using proof-of-work, time-lock and instrumentation challenges

Self-hosted CAPTCHAfor the modern web.

Self-hosted CAPTCHA

for the modern web.

No Google. No telemetry. No visual puzzles. Switch from reCAPTCHA in minutes.Drop-in reCAPTCHA replacement. Privacy-first. No tracking. No puzzles.

Read the docs →Read the docsSelf-host Cap →Self-host CapGet started in 5 minutes →Get started in 5 minutesWatch it in action ↗Watch it in actionView live demo ↗View live demoTry it yourself ↗Try it yourselfTry the demo ↗Try the demo

Cap admin dashboard screenshot

6k stars on GitHub·Apache 2.0·Zero dependencies·20kb widget·1.1B CDN hits

Features

250x smaller than hCaptcha.

No puzzles, no tracking.

Privacy-first

Zero telemetry. No third-party network. Your users' data stays between you and them.

\~20kb, zero dependencies

Loads in milliseconds, not seconds.

No visual puzzles

PoW and instrumentation run silently in the background. No "click the traffic lights."

Apache 2.0

Free forever. Audit it, fork it, own it. No vendor can pull the rug.

Standalone mode

Deploy anywhere with one Docker container. Includes analytics and multi-site-key support.

No user interaction

Hide the widget entirely and solve challenges silently, ideal for APIs and forms. Ready for headless browser detection.

GDPR & WCAG 2.2 compliant

Meets strict privacy and accessibility standards.

Fully customizable

Colors, size, position, icons, all controllable via CSS variables. No iframe lock-in.

Compared

How it compares.

Cap sits in the same detection tier as the big names, without shipping your users' data to a third party.

| | Cap | reCAPTCHA | Turnstile | hCaptcha | Friendly | | ---------------------- | ---------- | --------- | ---------- | -------- | -------- | | Self-hosted | Yes | \- | \- | \- | \- | | Open source | Apache 2.0 | No | No | No | No | | No visual puzzles | Yes | Frequent | Yes | Frequent | Yes | | No 3rd-party telemetry | Yes | Google | Cloudflare | hCaptcha | Limited | | Bundle size | \~20 kb | 500 kb+ | 110 kb+ | 600 kb+ | 80 kb+ | | Free at scale | Yes | Quota | Yes | Quota | Paid | | Instrumentation layer | Yes | Yes | Yes | Yes | No |

Architecture

Two independent layers.

Bypass one, the other still holds.

Every challenge solves proof-of-work and runs browser instrumentation at the same time. Defeating one layer doesn't defeat the other.

Layer 01 · Proof-of-work

Heavy math, in the browser.

The client solves parallel SHA-256 hashes and time-lock challenges in WASM. Tuned against GPU acceleration, real CPU time, real money to scale.

target0x00010000…

hashes/s2.38M

solved1.82s ✓

`sha256`

a7f3…b19c9d4e…3b7f2c1a…e88df06b…44a25e9c…d7108b22…cc91a7f3…b19c9d4e…3b7f2c1a…e88df06b…44a25e9c…d7108b22…cc91

Layer 02 · Instrumentation

A real browser proves itself.

A freshly-generated JS program runs DOM-dependent ops a real browser handles trivially, and a headless runtime cannot fake cheaply.

01layout.getComputedStyle4ms

02canvas.toDataURL7ms

03event.isTrusted1ms

04navigator.webdriver✓

`dom`

Install

Drop it in. Point at your server.

Verify server-side.

HTMLReactDockerVerifyCopy

<!-- drop in anywhere --> <script src="https://cdn.jsdelivr.net/npm/cap-widget"></script>

<cap-widget data-cap-api-endpoint="https://your.server/<site-key>/"> </cap-widget>

CDN hits · 12mo01234567890,012345678900123456789001234567890,012345678900123456789001234567890,012345678900123456789001234567890

Nov 13May 14

size20_kb_vs 600 kb+ hCaptcha

trackers0vs reCAPTCHA

cost$0_/mo_vs $1k+ hCaptcha

setup15_min_docker container

Is it GDPR-friendly? Yes. Cap doesn't phone home, doesn't set cookies, and doesn't fingerprint users. Your server sees the verification, no one else does.

Can I migrate from reCAPTCHA / hCaptcha? Yes. Cap's siteverify API is compatible with reCAPTCHA and hCaptcha, but you'll need to swap your client-side code to use Cap's widget.

How effective is it against real bots? Cap's instrumentation combined with proof-of-work is very effective at making abuse extremely difficult to automate at scale.

What does it cost to self-host? Cap Standalone fits on a $5 VPS for most sites. There are no per-request fees, no egress to a third party, and no API quotas to hit.

Get started

Ship Cap in 15 minutes.

Drop the widget into your site, point it at a $5 VPS, and stop paying anyone to see your users' traffic.

Read the docs →Try the demo ↗Star on GitHub

trycap.dev · 2 images · 5 links

Comments (0)

No comments yet