- Cap là CAPTCHA self-hosted dưới Apache 2.0, widget chỉ ~20 KB (250x nhỏ hơn hCaptcha), không telemetry, không puzzle hình ảnh.
- Đã đạt 1 tỷ solves trong Q1 2026 và tương thích siteverify API của reCAPTCHA/hCaptcha — switch trong vài phút.
TL;DR
Cap là CAPTCHA self-hosted, open-source dưới Apache 2.0, do tiago.zip phát triển. Repo đã đạt 5.4k stars GitHub, 1 tỷ solves trong Q1 2026 và 1.1 tỷ CDN hits trong 12 tháng. Widget chỉ ~20 KB (250× nhỏ hơn hCaptcha), không telemetry, không hình ảnh, không “click traffic lights”. Cap chạy hai layer độc lập — SHA-256 proof-of-work qua WebAssembly và dynamic JavaScript instrumentation — và tương thích siteverify API của reCAPTCHA/hCaptcha, switch chỉ vài phút. Tự host trên VPS $5/tháng.
What’s new
Cap không phải CAPTCHA mới toanh — repo đã launch trên Hacker News tháng 6/2025 (165 points, 10 tháng trước) — nhưng thư viện đang trở thành trend trong cộng đồng dev privacy-conscious sau khi vượt mốc 1 tỷ solves trong quý đầu 2026. Bản standalone@3.0.5 ra cách đây 2 ngày, widget@0.1.45 cũng vừa cập nhật. Không puzzle, không tracking — chỉ một widget 20 KB chạy proof-of-work trong nền và xác thực browser real qua các DOM operations.
Why it matters
Phần lớn web hiện tại đang phụ thuộc vào reCAPTCHA của Google và hCaptcha — cả hai đều ship 500–600 KB JavaScript, gửi telemetry về third-party, và thường xuyên dump puzzle hình ảnh vào mặt user. Cap đảo ngược ba thứ đó: self-host nên data không rời server bạn, ~20 KB nên load trong vài ms, challenge chạy silent nên user không phải làm gì ngoài tick checkbox (hoặc không thấy widget với invisible mode). Với GDPR/CCPA, Cap không set cookie, không fingerprint, không phone home — site tự verify token.
Technical facts
| Property | Value |
|---|---|
| Widget size | ~20 KB (zero dependencies) |
| Algorithm | SHA-256 PoW + JS instrumentation |
| Runtime | Node, Bun, Deno + Docker standalone |
| Modes | visible / invisible / floating / programmatic |
| Standalone memory | ~50 MB idle |
| License | Apache 2.0 |
| GitHub | 5.4k stars, 383 forks, 104 releases |
PoW layer dùng Rust-flavored WASM + Web Workers chạy parallel SHA-256, tìm nonce sao cho hash bắt đầu bằng target prefix (demo: 2.33M hashes/s, solve trong 1.82s). Instrumentation layer thì server gen JS tươi mỗi request, decompress và execute trong sandboxed iframe để verify layout.getComputedStyle, canvas.toDataURL, event.isTrusted, navigator.webdriver — những op headless browser không fake rẻ được. Hai layer độc lập: bypass cái này, cái kia vẫn chặn.
Comparison
| Cap | reCAPTCHA | Turnstile | hCaptcha | Friendly | |
|---|---|---|---|---|---|
| Self-hosted | Yes | No | No | No | No |
| Open source | Apache 2.0 | No | No | No | No |
| No 3rd-party telemetry | Yes | 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 |
Cap là tool duy nhất đồng thời self-hosted, Apache 2.0, free at scale và có instrumentation layer.
Use cases
- Login & signup forms — invisible mode chạy ngầm, chặn credential stuffing và mass account creation.
- Comments & contact forms — act như rate-limiter, một comment cost rẻ với human, 10k spam messages thành không kinh tế cho bot.
- API protection / M2M — programmatic mode hide widget, solve silent, allow-list “friendly robots”.
- Anti-scraping — thêm chi phí computation nhẹ mỗi request, crawler hàng nghìn req/s sẽ bottleneck nghiêm trọng.
Integration cực đơn giản: drop <cap-widget data-cap-api-endpoint="https://your-instance" data-cap-site-key="..."> vào HTML, listen solve event hoặc wrap trong <form> để auto-submit cap-token. Backend deploy với docker-compose tiagozip/cap:standalone + Redis hoặc Valkey, port 3000. Verify token bằng POST /siteverify JSON {secret, response} — exact same shape với reCAPTCHA, nên migrate thật sự chỉ vài phút code.
Limitations & pricing
Cap free 100% (Apache 2.0). Self-host fits VPS $5/tháng cho hầu hết sites. Tuy nhiên cộng đồng Hacker News đã raise vài critique nghiêm túc đáng cân nhắc:
- PoW asymmetry: bot farm với GPU/FPGA/ASIC có thể solve SHA-256 nhanh ~10,000× hơn browser thường. Một critic ước chi phí thực tế cho attacker chỉ ~1/10000 cent — không đủ làm nản chí targeted abuse.
- Battery drain: burden tính toán dồn vào client, user mobile pin yếu chịu thiệt nhất.
- JS-only: yêu cầu JavaScript, không có
<noscript>fallback, kém accessibility cho user disable JS. - Targeted attacks: chỉ hiệu quả với scale-bot (scraper hàng triệu req); attacker focus 1 site vẫn dễ bypass.
- Whitepaper drama: Cap từng link một paper “PoW with password cracking” — author đã clarify Cap KHÔNG mine crypto, KHÔNG send hashes đi đâu, paper chỉ link để giải thích concept PoW.
Như chính author nói: dùng đúng threat model. PoW không phải “bot detection” — nó là rate-limiter làm scale abuse trở nên kinh tế-không-khả-thi.
What’s next
Recent commits cho thấy hướng đi: speculative challenges và JWT challenge tokens đã merge 2 tháng trước, dashboard standalone tiếp tục cải tiến. Không có roadmap công khai chính thức, nhưng release cadence (104 releases, latest 2 ngày trước) cho thấy project rất active.
Nếu site bạn đang khổ vì reCAPTCHA puzzle hành user (hoặc lo Google biết quá nhiều), Cap đáng test thử — siteverify API tương thích nên switch chỉ tốn vài phút.
Nguồn: github.com/tiagozip/cap, capjs.js.org, Hacker News thread.


