{"adoption": {"forks": 41, "observed_at": "2026-08-28T04:03:17.897758+00:00", "stars": 1030}, "canonical_url": "https://ross.abutalabs.com/products/git-heat-map", "card": {"archived": false, "artifact_type": "application", "description": "Visualise a git repository by diff activity", "domain": ["developer-tools", "version-control", "data-visualization", "analytics"], "enriched": true, "function": ["data-visualization", "charts", "http-server", "database", "search-engine"], "health_score": 20, "homepage": "http://heatmap.jonathanforsythe.co.uk", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["jmforsythe/Git-Heat-Map"], "name": "jmforsythe/Git-Heat-Map", "platform": ["python", "self-hosted", "cross-platform", "cli"], "pushed_at": "2024-09-27T17:09:58+00:00", "repo": "jmforsythe/Git-Heat-Map", "stars": 1030, "tags": ["git", "treemap", "svg", "flask", "sqlite", "git-analytics", "code-visualization", "heatmap", "web-server"], "topics": ["git", "treemap", "database", "python"], "urls": [], "use_cases": ["visualize which files changed the most in a git repository", "generate a treemap heatmap of git diff activity", "analyze which authors or commits touched which files", "explore codebase hotspots by file extension or date range", "create an SVG image of a repository's change history"], "what_it_is": "A tool that visualizes a git repository as an interactive SVG treemap, where file sizes reflect diff activity (lines added/removed). It parses git history into a SQLite database and serves a Flask web app for filtering by author, commit, filename, and date range.", "when_to_avoid": ["you need line-by-line code diffs rather than aggregate activity", "you want commit graphs or branch topology visualization (use gitk or Gource instead)", "you need a supported license for commercial redistribution (none is provided)"], "when_to_choose": ["you want a visual, interactive treemap of git change activity", "you need to identify hotspots or most-modified files in a large repo", "you want to filter history by author, email, filename, or date range"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/git-heat-map", "repo": "jmforsythe/Git-Heat-Map", "role": "main", "score": 31}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "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:17.897758+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.897758+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:33.973935+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d693646414395cff522e3edd477332824c39704f0bd3c10a6a5453337ea52d5b", "fetched_at": "2026-08-28T04:03:17.897758+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jmforsythe/Git-Heat-Map"}, {"content_hash": "4baef27230403062142c7d11990c768bc374aea361d53a2d1a40db5134bf99b5", "fetched_at": "2026-08-29T13:07:04.895907+00:00", "kind": "homepage", "missing": false, "url": "http://heatmap.jonathanforsythe.co.uk"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 96, "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": 1356, "days_push": 705, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 31, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}