{"adoption": {"forks": 94, "observed_at": "2026-08-28T04:04:04.556370+00:00", "stars": 1233}, "canonical_url": "https://ross.abutalabs.com/products/gmpublisher", "card": {"archived": false, "artifact_type": "application", "description": "⚙️ Workshop Publishing Utility for Garry's Mod, written in Rust & Svelte and powered by Tauri", "domain": ["gaming-tools", "developer-tools", "cross-platform"], "enriched": true, "function": ["developer-tools", "cli", "gui", "file-system", "compression"], "health_score": 96, "homepage": null, "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["WilliamVenner/gmpublisher"], "name": "WilliamVenner/gmpublisher", "platform": ["windows", "rust", "cross-platform"], "pushed_at": "2026-07-29T17:37:02+00:00", "repo": "WilliamVenner/gmpublisher", "stars": 1233, "tags": ["garrys-mod", "steam-workshop", "tauri", "gma", "addon-publishing", "svelte", "macos", "linux"], "topics": ["gmod", "garrys", "workshop", "publishing", "utility", "publisher", "billy", "gmpublisher", "gmpublish", "gmad", "garrys-mod", "garrysmod", "gmpu", "gmpt"], "urls": [], "use_cases": ["publish a Garry's Mod addon to the Steam Workshop", "update an existing Workshop item with new files", "extract and browse GMA addon files", "bulk download Workshop collections for offline use", "analyze which addons take up the most disk space", "upload an animated GIF as a Workshop item icon"], "what_it_is": "gmpublisher is a desktop utility for publishing and managing Garry's Mod Steam Workshop addons, built with Rust, Svelte, and Tauri. It replaces Valve's gmad.exe and gmpublish.exe tools with a GUI and CLI that can publish, update, extract, and bulk-download Workshop items and GMA files.", "when_to_avoid": ["you publish content for other Source games or non-Steam platforms", "you need fully automated CI/CD publishing without any Steam interaction", "you work outside the Garry's Mod ecosystem"], "when_to_choose": ["you create or maintain Garry's Mod addons and want a GUI alternative to gmad/gmpublish", "you need to extract, search, or bulk-download Workshop content", "you want a cross-platform tool with both GUI and CLI interfaces"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gmpublisher", "repo": "WilliamVenner/gmpublisher", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "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:04.556370+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.556370+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:22:14.356283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ad6b397aac0c6245b779e08f8d35f9a19142420a27626157d0e2b1b334130c3", "fetched_at": "2026-08-28T04:04:04.556370+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WilliamVenner/gmpublisher"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 67}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2021, "days_push": 35, "days_rel": 60, "gap_med": 113.5, "n_releases_24m": 7}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}