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

PropertyValue
Widget size~20 KB (zero dependencies)
AlgorithmSHA-256 PoW + JS instrumentation
RuntimeNode, Bun, Deno + Docker standalone
Modesvisible / invisible / floating / programmatic
Standalone memory~50 MB idle
LicenseApache 2.0
GitHub5.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

CapreCAPTCHATurnstilehCaptchaFriendly
Self-hostedYesNoNoNoNo
Open sourceApache 2.0NoNoNoNo
No 3rd-party telemetryYesGoogleCloudflarehCaptchaLimited
Bundle size~20 KB500 KB+110 KB+600 KB+80 KB+
Free at scaleYesQuotaYesQuotaPaid
Instrumentation layerYesYesYesYesNo

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 challengesJWT 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.