{"adoption": {"forks": 173, "observed_at": "2026-08-28T04:03:18.247088+00:00", "stars": 1032}, "canonical_url": "https://ross.abutalabs.com/products/jacksontian-anywhere", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Running static file server anywhere / 随启随用的静态文件服务器", "domain": ["web-development", "developer-tools", "frontend"], "enriched": true, "function": ["http-server", "cli", "developer-tools"], "health_score": 79, "homepage": null, "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["JacksonTian/anywhere"], "name": "JacksonTian/anywhere", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-17T08:03:50+00:00", "repo": "JacksonTian/anywhere", "stars": 1032, "tags": ["static-file-server", "dev-server", "zero-configuration", "localhost", "html5-history-fallback", "http-proxy", "npm-global-tool", "directory-serving", "frontend-development", "local-preview", "command-line", "nodejs"], "topics": [], "urls": [], "use_cases": ["serve static files from a local directory over http", "quickly preview an html site in the browser", "run a local http server in the current folder with a custom port", "test a single-page app locally with html5 history fallback", "proxy api requests to a backend while serving static assets", "share a folder as a web server without writing any config"], "what_it_is": "Anywhere is a zero-configuration Node.js command-line tool that turns the current directory into a static file server with a single command. It supports custom ports, hostnames, root folders, HTML5 history fallback, automatic browser opening, and optional proxy middleware for forwarding API requests.", "when_to_avoid": ["You need a production web server with TLS, caching, authentication, or fine-grained access control - use nginx, Caddy, or similar", "You need a full development server with hot module reloading and bundling - use Vite or webpack-dev-server", "You need to embed a programmable static server inside another Node.js application rather than run it from the terminal"], "when_to_choose": ["You need a one-command static server for a local folder with no configuration", "You want automatic browser opening with quick port, hostname, or root directory overrides while developing frontend assets", "You need lightweight SPA preview with history fallback or simple shorthand proxying to a local API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jacksontian-anywhere", "repo": "JacksonTian/anywhere", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/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:03:18.247088+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.247088+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:06:43.174957+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1c35d194a7fe298497227e52fad8036ebb49b49ed95e816436da7718154b927c", "fetched_at": "2026-08-28T04:03:18.247088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JacksonTian/anywhere"}, {"content_hash": "c9c845253adc796b59b1a9ba4582a3f5c957fe921da5f46fe618e46c4e3a8165", "fetched_at": "2026-08-29T13:06:23.857416+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/anywhere"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5070, "days_push": 16, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}