{"adoption": {"forks": 6525, "observed_at": "2026-08-28T04:10:30.936737+00:00", "stars": 9376}, "canonical_url": "https://ross.abutalabs.com/products/cors-anywhere", "card": {"archived": false, "artifact_type": "service", "description": "CORS Anywhere is a NodeJS reverse proxy which adds CORS headers to the proxied request.", "domain": ["web-development", "apis", "backend", "developer-tools"], "enriched": true, "function": ["proxy", "http-server", "middleware"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Rob--W/cors-anywhere"], "name": "Rob--W/cors-anywhere", "platform": ["self-hosted"], "pushed_at": "2024-08-16T21:14:49+00:00", "repo": "Rob--W/cors-anywhere", "stars": 9376, "tags": ["cors", "cross-origin-requests", "reverse-proxy", "http-proxy", "api-development", "frontend-development", "heroku", "nodejs", "web-server", "docker"], "topics": [], "urls": [], "use_cases": ["add CORS headers to a third-party API that doesn't support them", "make cross-origin requests from a browser to a server without CORS", "self-host a CORS proxy for frontend development", "bypass CORS restrictions when fetching resources client-side", "proxy HTTP requests through a Node.js server with CORS enabled", "test cross-domain API calls during web development"], "what_it_is": "CORS Anywhere is a Node.js reverse proxy that adds CORS headers to proxied requests, allowing browsers to make cross-origin requests to servers that don't support CORS. The target URL is taken from the request path, and the proxy can be configured with origin whitelists, required headers, and cookie removal.", "when_to_avoid": ["you need a production-grade proxy with rate limiting and authentication at scale", "you want a zero-maintenance hosted service - the public demo requires opt-in and is rate-limited", "you need to proxy websockets or non-HTTP protocols", "security-sensitive contexts where routing traffic through a third-party proxy is unacceptable"], "when_to_choose": ["you need a lightweight, self-hostable CORS proxy in Node.js", "a third-party API lacks CORS headers and you can't modify the server", "you want fine-grained control over origin whitelists and required headers", "you're prototyping a frontend that needs cross-origin data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cors-anywhere", "repo": "Rob--W/cors-anywhere", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "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:10:30.936737+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.936737+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:22:21.313277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae0015ad2cdf02a238a723461748764b21412a9d6e9e271d3983cbabfeb4a9b3", "fetched_at": "2026-08-28T04:10:30.936737+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Rob--W/cors-anywhere"}, {"content_hash": "585455fce6e6bdfc0ca651deca4073f3b9a27e225f7d8929829859f7dd7e6e7c", "fetched_at": "2026-08-29T08:22:29.402408+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/cors-anywhere"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4990, "days_push": 747, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}