{"adoption": {"forks": 311, "observed_at": "2026-08-28T04:05:25.019791+00:00", "stars": 1707}, "canonical_url": "https://ross.abutalabs.com/products/fb-sleep-stats", "card": {"archived": false, "artifact_type": "application", "description": "Use Facebook to track your friends’ sleeping habits", "domain": ["privacy", "social-media", "osint", "web-development"], "enriched": true, "function": ["web-scraping", "data-visualization", "http-server", "analytics"], "health_score": 20, "homepage": "https://medium.com/@sqrendk/how-you-can-use-facebook-to-track-your-friends-sleeping-habits-505ace7fffb6", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["sorenlouv/fb-sleep-stats"], "name": "sorenlouv/fb-sleep-stats", "platform": ["cross-platform"], "pushed_at": "2020-09-29T11:33:35+00:00", "repo": "sorenlouv/fb-sleep-stats", "stars": 1707, "tags": ["facebook", "sleep-tracking", "privacy-research", "scraper", "proof-of-concept", "nodejs", "web-server"], "topics": [], "urls": [], "use_cases": ["demonstrate privacy risks of social media presence indicators", "track when Facebook friends are online to infer sleep schedules", "research OSINT techniques using online status data", "visualize collected online/offline activity over time"], "what_it_is": "A Node.js proof-of-concept tool that polls Facebook's online/offline status to infer and visualize friends' sleep patterns. It consists of a scraper and a local web server that displays the collected data in the browser.", "when_to_avoid": ["you need a maintained tool — the project is abandoned and Facebook's API changes likely broke it", "you want production-grade or ethical monitoring of real people", "you need anything beyond a proof-of-concept demo"], "when_to_choose": ["you want a concrete demonstration of social media privacy implications", "you're researching what online-status data leaks about users", "you need a simple Node.js scraping plus visualization example"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fb-sleep-stats", "repo": "sorenlouv/fb-sleep-stats", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "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:25.019791+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.019791+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.962843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2f2666e6ab8b4294b3da715e0f073fc7f7f3e1451ae61b521578c275f0dadfe9", "fetched_at": "2026-08-28T04:05:25.019791+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sorenlouv/fb-sleep-stats"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3899, "days_push": 2164, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}