{"adoption": {"forks": 33, "observed_at": "2026-08-28T04:04:06.563554+00:00", "stars": 1243}, "canonical_url": "https://ross.abutalabs.com/products/node-draftlog", "card": {"archived": false, "artifact_type": "library", "description": "📜 Create mutable log lines into the terminal, and give life to your logs!", "domain": ["developer-tools"], "enriched": true, "function": ["logging", "terminal-ui", "cli"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ivanseidel/node-draftlog"], "name": "ivanseidel/node-draftlog", "platform": ["cli", "cross-platform"], "pushed_at": "2023-04-28T14:21:29+00:00", "repo": "ivanseidel/node-draftlog", "stars": 1243, "tags": ["ansi-escape-codes", "console", "progress-bars", "updatable-log-lines", "terminal-animations", "command-line", "nodejs"], "topics": ["nodejs", "logging", "ansi-escape-codes", "console"], "urls": [], "use_cases": ["update terminal log lines after printing", "build a custom progress bar in node", "show live loading status in a cli", "animate console output", "create dynamic checkboxes in the terminal", "print a live-updating clock in the console"], "what_it_is": "A Node.js library that injects a `draft` method into the console, allowing previously written terminal lines to be updated in place using ANSI escape codes. It serves as a building block for creating dynamic CLI elements like progress bars, spinners, and animations without imposing fixed widgets.", "when_to_avoid": ["you just need ready-made progress bars or spinners with no customization", "your project is not Node.js based", "you need actively developed software with recent feature work"], "when_to_choose": ["you want full creative control over dynamic terminal output instead of prebuilt widgets", "you need to update individual log lines while other output continues", "you're building custom CLI progress indicators or animations in Node.js"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-draftlog", "repo": "ivanseidel/node-draftlog", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "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:04:06.563554+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.563554+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:08:19.612311+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7fd5ef6efcadabe1baff4ff8deb1d1c54f7007af41b9df19373170842136bd28", "fetched_at": "2026-08-28T04:04:06.563554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ivanseidel/node-draftlog"}], "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": 3467, "days_push": 1223, "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}}