{"adoption": {"forks": 697, "observed_at": "2026-08-28T04:09:09.696441+00:00", "stars": 5098}, "canonical_url": "https://ross.abutalabs.com/products/device-activity-tracker", "card": {"archived": false, "artifact_type": "application", "description": "A phone number can reveal whether a device is active, in standby or offline (and more). This PoC demonstrates how delivery receipts + RTT timing leak sensitive device-activity patterns. (WhatsApp / Signal)", "domain": ["security", "privacy", "messaging-platforms", "developer-tools"], "enriched": true, "function": ["security", "privacy", "monitoring", "http-client", "cli", "developer-tools"], "health_score": 56, "homepage": null, "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["gommzystudio/device-activity-tracker"], "name": "gommzystudio/device-activity-tracker", "platform": ["cli", "cross-platform"], "pushed_at": "2025-12-31T12:04:59+00:00", "repo": "gommzystudio/device-activity-tracker", "stars": 5098, "tags": ["whatsapp", "signal", "rtt-analysis", "delivery-receipts", "surveillance-research", "proof-of-concept", "baileys", "vulnerability-research", "react-frontend", "nodejs", "web-server", "docker"], "topics": ["phone-number", "signal", "tracking", "whatsapp", "poc", "baileys", "exploit", "messenger", "nodejs", "react", "typescript", "vulnerability", "privacy"], "urls": [], "use_cases": ["track whether a phone number's device is active or in standby", "demonstrate WhatsApp delivery receipt privacy vulnerability", "reproduce the Careless Whisper research paper findings", "measure RTT of message delivery receipts on Signal and WhatsApp", "study device activity patterns via mobile data vs WiFi timing", "security research on mobile messenger surveillance"], "what_it_is": "A proof-of-concept application that tracks device activity of phone numbers on WhatsApp and Signal by measuring round-trip times of silent delivery receipts. It demonstrates a privacy vulnerability from academic research, exposing whether a device is active, in standby, or offline, and ships with a React web UI, Node.js backend, and CLI.", "when_to_avoid": ["you need a production monitoring or analytics tool", "you intend to surveil people without consent - this is unethical and likely illegal", "you need a hardened, licensed, supported product (license is non-standard and it is a PoC)"], "when_to_choose": ["you are a security researcher or educator demonstrating messenger privacy flaws", "you want to reproduce the Careless Whisper paper's RTT-based tracking technique", "you need a working PoC with web UI and CLI for WhatsApp/Signal receipt timing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/device-activity-tracker", "repo": "gommzystudio/device-activity-tracker", "role": "main", "score": 43}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "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:09:09.696441+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.696441+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:02:13.686295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d3ff5083bf7e3307474709d72de01e50b00e7937f9c8bc9ce56f13f2a1688038", "fetched_at": "2026-08-28T04:09:09.696441+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gommzystudio/device-activity-tracker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 60, "longevity": 19, "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": 269, "days_push": 245, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 43, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}