{"adoption": {"forks": 101, "observed_at": "2026-08-28T04:05:43.299201+00:00", "stars": 1947}, "canonical_url": "https://ross.abutalabs.com/products/walgit", "card": {"archived": false, "artifact_type": "service", "description": null, "domain": ["version-control", "self-hosted", "developer-tools", "backend", "infrastructure-as-code"], "enriched": true, "function": ["http-server", "web-framework", "object-storage", "auth", "webhook", "api-framework", "developer-tools"], "health_score": 80, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["tobi/walgit"], "name": "tobi/walgit", "platform": ["rust", "self-hosted"], "pushed_at": "2026-08-25T18:10:24+00:00", "repo": "tobi/walgit", "stars": 1947, "tags": ["git-server", "git-hosting", "object-storage", "s3", "gcs", "stateless", "smart-http", "git-lfs", "bundle-uri", "write-ahead-log", "single-binary", "linux", "macos", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["self-host git repositories on S3-compatible storage", "run a stateless git server that scales horizontally", "host git repos larger than the machine's disk", "replace GitHub/GitLab with a minimal single-binary git host", "serve git clones via bundle-uri for fast initial clones", "add token-based auth and push policies to git hosting", "deploy disposable git server instances behind a load balancer"], "what_it_is": "Walgit is a self-hosted Git server implemented as a single Rust binary that uses S3- or GCS-compatible object storage as the source of truth, with every server instance acting as a disposable cache. It provides smart HTTP fetch/push, bundle-uri clones, Git LFS, a web UI, a JSON API with SDK, push policies, and webhooks without any database or leader election.", "when_to_avoid": ["you need a full code-hosting platform with issues, pull requests, and CI", "you require fine-grained permissions, organizations, or user management", "you depend on a mature ecosystem of integrations and plugins", "you want a GUI-first administration experience", "your team needs established, battle-tested git hosting like GitHub or GitLab"], "when_to_choose": ["you want git hosting with no database and no leader to manage", "your repositories are large and you want object storage as the source of truth", "you need horizontally scalable, stateless git server instances", "you prefer a single-binary deployment backed by S3 or GCS", "you want Git LFS and a web UI included without extra services"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/walgit", "repo": "tobi/walgit", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "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:43.299201+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.299201+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.597192+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "594cd6c6e04a0729c348a4b335739b04fbcaa0a86f68176a21d112ba5613396b", "fetched_at": "2026-08-28T04:05:43.299201+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tobi/walgit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 0, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 10, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}