{"adoption": {"forks": 47, "observed_at": "2026-08-28T04:04:50.668889+00:00", "stars": 1479}, "canonical_url": "https://ross.abutalabs.com/products/warracker", "card": {"archived": false, "artifact_type": "application", "description": "🛡️ Warracker is an open source, self-hostable warranty tracker to monitor expirations, store receipts, files. You own the data, your rules!", "domain": ["developer-tools", "self-hosted", "web-development"], "enriched": true, "function": ["self-hosted", "web-framework", "file-upload", "search-engine", "alerting", "email", "developer-tools"], "health_score": 94, "homepage": "https://warracker.com", "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["sassanix/Warracker"], "name": "sassanix/Warracker", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-08-24T01:15:29+00:00", "repo": "sassanix/Warracker", "stars": 1479, "tags": ["warranty-tracker", "asset-tracking", "receipt-storage", "expiration-alerts", "document-management", "multi-user", "docker-compose", "automation", "docker", "web-server"], "topics": ["open-source", "self-hosted", "warranty-management", "web-application", "warranty-tracker", "asset-tracker"], "urls": [], "use_cases": ["track product warranties and expiration dates in one place", "store receipts, invoices, and manuals for purchases", "get notified before warranties expire", "manage warranty claims with statuses and resolutions", "share warranty records across a family or team with multi-user support", "self-host a private warranty and asset tracker", "search warranties by product name, serial number, or vendor"], "what_it_is": "Warracker is an open-source, self-hosted web application for tracking product warranties, expiration dates, and related documents like receipts and manuals. It supports multi-user access, warranty claim management, and expiration alerts via email or push services through Apprise.", "when_to_avoid": ["you only need a simple spreadsheet and don't want to run a server", "you need enterprise asset management with procurement and depreciation features", "you want a hosted SaaS solution without self-hosting"], "when_to_choose": ["you want full ownership of your warranty data on your own server", "you need expiration alerts via email or push services like Discord and Slack", "you want to store receipts and documents alongside warranty records", "you need multi-user warranty tracking with role-based permissions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/warracker", "repo": "sassanix/Warracker", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "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:50.668889+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.668889+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:20.214652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17cb7305bc5e5a05c8a32181caac29cd00f68b79f5e122cf09b944aa46424583", "fetched_at": "2026-08-28T04:04:50.668889+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sassanix/Warracker"}, {"content_hash": "991f906a5eeb5af1e0dd578d3b74942a20521ff1620ec7e8d01cc4c2aa7fa360", "fetched_at": "2026-08-29T11:41:38.038697+00:00", "kind": "homepage", "missing": false, "url": "https://warracker.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 39, "rhythm": 54}, "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": 549, "days_push": 10, "days_rel": 307, "gap_med": 3, "n_releases_24m": 54}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}