{"adoption": {"forks": 83, "observed_at": "2026-08-28T04:05:15.944227+00:00", "stars": 1643}, "canonical_url": "https://ross.abutalabs.com/products/nodebook", "card": {"archived": false, "artifact_type": "application", "description": "Nodebook - Multi-Lang Web REPL + CLI Code runner", "domain": ["developer-tools", "education", "programming-languages"], "enriched": true, "function": ["interpreter", "developer-tools", "cli", "http-server", "gui"], "health_score": 20, "homepage": null, "language": "Go", "license": "ISC", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["netgusto/nodebook"], "name": "netgusto/nodebook", "platform": ["cli"], "pushed_at": "2024-05-15T05:19:08+00:00", "repo": "netgusto/nodebook", "stars": 1643, "tags": ["repl", "notebook", "code-runner", "multi-language", "coding-interview-practice", "self-hosted", "command-line", "linux", "macos", "docker", "web-server"], "topics": ["repl", "nodejs", "c", "cpp", "haskell", "java", "lua", "php", "python", "r", "ruby", "rust", "swift", "go", "typescript", "elixir", "ocaml", "fsharp", "csharp", "clojure"], "urls": [], "use_cases": ["practice coding interview algorithms in a scratchpad", "quickly run code snippets in many languages from a browser", "run notebooks automatically on file change from the CLI", "sandbox code execution in disposable docker containers", "keep code experiments as plain files on disk"], "what_it_is": "Nodebook is a self-hosted, multi-language web REPL and CLI code runner supporting ~19 languages including Python, Go, Rust, and Haskell. Notebooks are plain folders with an entry file, persisted on the filesystem, and can optionally execute in disposable Docker containers.", "when_to_avoid": ["you need rich notebook features like inline charts, markdown cells, or sharing like Jupyter", "you require a managed cloud environment or collaboration features", "you only work in a single language with a dedicated REPL"], "when_to_choose": ["you want a lightweight, file-based multi-language REPL with a web UI", "you need isolated execution via per-language docker containers", "you prefer notebooks stored as plain source files in folders"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nodebook", "repo": "netgusto/nodebook", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "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:05:15.944227+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:15.944227+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:46:18.183470+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a994dead763708e0cfee6b66f363510ff4b55dfcb0533a8a4a95e72f68ad727e", "fetched_at": "2026-08-28T04:05:15.944227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netgusto/nodebook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 2919, "days_push": 840, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}