{"adoption": {"forks": 552, "observed_at": "2026-08-28T04:10:59.862300+00:00", "stars": 12811}, "canonical_url": "https://ross.abutalabs.com/products/userjs", "card": {"archived": false, "artifact_type": "infra-config", "description": "Firefox privacy, security and anti-tracking: a comprehensive user.js template for configuration and hardening", "domain": ["privacy", "security", "desktop-applications"], "enriched": true, "function": ["privacy", "security"], "health_score": 98, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["arkenfox/user.js"], "name": "arkenfox/user.js", "platform": ["windows", "browser"], "pushed_at": "2026-08-26T06:17:19+00:00", "repo": "arkenfox/user.js", "stars": 12811, "tags": ["firefox", "mozilla", "user-js", "anti-fingerprinting", "anti-tracking", "browser-hardening", "configuration-template", "prefs", "telemetry", "linux", "macos"], "topics": ["privacy", "firefox", "security", "settings", "anti-fingerprinting", "arkenfox", "mozilla", "anti-tracking"], "urls": [], "use_cases": ["harden firefox for privacy and security", "stop websites from tracking me in firefox", "prevent browser fingerprinting", "disable firefox telemetry and data collection", "get a maintained firefox prefs template to drop into my profile", "make firefox more private without breaking sites too much", "baseline privacy settings for a fresh firefox install"], "what_it_is": "A comprehensive, curated user.js template that overrides hundreds of Firefox preferences to maximize privacy and security while reducing tracking and fingerprinting. It targets desktop Firefox specifically and is backed by an extensive wiki, regular releases, and an interactive webpage for reviewing and overriding settings.", "when_to_avoid": ["You use Tor Browser - the project explicitly recommends against applying it there", "You use a Gecko fork or other Gecko-based browser, where applying it as-is can be counterproductive", "You need Firefox on mobile or a set-and-forget setup with zero site breakage", "You want a GUI extension rather than a preference file you manage yourself"], "when_to_choose": ["You run desktop Firefox on Linux, macOS, or Windows and want a curated, regularly updated privacy and security baseline", "You are willing to read the wiki and override individual prefs to fit your workflow", "You want stronger anti-fingerprinting and anti-tracking protections than Firefox ships with by default"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/userjs", "repo": "arkenfox/user.js", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "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:10:59.862300+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:59.862300+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:46.158972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "258fb37c7303a54aca82ac794f55d4064c08bc5ec9ae50ba9d16a89b38cf6986", "fetched_at": "2026-08-28T04:10:59.862300+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arkenfox/user.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 56}, "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": 3485, "days_push": 7, "days_rel": 135, "gap_med": 120.5, "n_releases_24m": 5}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}