{"adoption": {"forks": 221, "observed_at": "2026-08-28T04:06:44.444386+00:00", "stars": 2411}, "canonical_url": "https://ross.abutalabs.com/products/go-captcha", "card": {"archived": false, "artifact_type": "library", "description": "🖖 GoCaptcha: A high-performance, interactive behavior captcha library for Go. Supporting click, slide, drag-drop, and rotation modes to secure your applications with ease.", "domain": ["security", "web-development", "backend"], "enriched": true, "function": ["security", "middleware", "ui-components", "image-processing"], "health_score": 81, "homepage": "http://gocaptcha.wencodes.com", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["wenlng/go-captcha"], "name": "wenlng/go-captcha", "platform": ["go", "cross-platform"], "pushed_at": "2026-03-07T09:26:40+00:00", "repo": "wenlng/go-captcha", "stars": 2411, "tags": ["captcha", "behavior-captcha", "click-captcha", "slider-captcha", "drag-drop-captcha", "rotation-captcha", "base64", "anti-bot", "frontend-components", "web-server"], "topics": ["go", "captcha", "click-captcha", "golang", "base64", "base64-captcha", "slider-captcha", "drag-drop-captcha", "rotation-captcha", "captcha-generator", "image-captcha", "behavior-analysis", "middleware", "security", "verification"], "urls": [], "use_cases": ["add captcha verification to a Go web application login form", "generate interactive click-based captchas in Go", "implement slider captcha challenges for bot protection", "add drag-drop or rotation captcha to a signup flow", "block automated bot signups with behavior-based verification", "serve base64 captcha images from a Go backend API"], "what_it_is": "GoCaptcha is a high-performance, modular behavioral CAPTCHA library for Go that generates interactive challenges including click, slide, drag-drop, and rotation modes. It ships with companion frontend packages for JavaScript, Vue, React, Angular, Solid, Svelte, and UniApp, and outputs base64 captcha data for web and app integration.", "when_to_avoid": ["your stack is not Go and you only need a backend captcha generator", "you want a fully managed captcha service like reCAPTCHA or hCaptcha with no integration work", "you need accessibility-friendly or audio-based captcha alternatives"], "when_to_choose": ["you need a self-hosted, customizable CAPTCHA in a Go backend without third-party services", "you want multiple interactive captcha modes (click, slide, drag, rotate) with matching frontend components", "you prefer behavior-based challenges over traditional text-input captchas for better UX"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-captcha", "repo": "wenlng/go-captcha", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.444386+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:33:59.020046+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c7c020b15672c47221c43abd8caa360e62abec7b5de4fa5d5589da47b745eee", "fetched_at": "2026-08-28T04:06:44.444386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenlng/go-captcha"}, {"content_hash": "c394e172690814cc3dd3c7724eaa92e34e4dec6d7e0860bf04ebb6960f70ad2b", "fetched_at": "2026-08-29T10:14:15.342736+00:00", "kind": "homepage", "missing": false, "url": "http://gocaptcha.wencodes.com"}, {"content_hash": "863465227af04dfac43c3149e57dcd3c8b3ed6976eceb03e1c0970c00ac8ba1d", "fetched_at": "2026-08-29T10:14:15.351536+00:00", "kind": "site_page", "missing": false, "url": "http://gocaptcha.wencodes.com/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 71, "longevity": 100, "rhythm": 50}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1871, "days_push": 179, "days_rel": 179, "gap_med": 91, "n_releases_24m": 4}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}