{"adoption": {"forks": 1865, "observed_at": "2026-08-28T04:11:29.101929+00:00", "stars": 19706}, "canonical_url": "https://ross.abutalabs.com/products/snapdrop", "card": {"archived": false, "artifact_type": "application", "description": "A Progressive Web App for local file sharing ", "domain": ["web-development", "developer-tools", "files", "self-hosted"], "enriched": true, "function": ["file-upload", "websocket", "http-server"], "health_score": 24, "homepage": "https://snapdrop.net", "language": "JavaScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["SnapDrop/snapdrop"], "name": "SnapDrop/snapdrop", "platform": ["cross-platform", "self-hosted"], "pushed_at": "2025-02-10T10:35:43+00:00", "repo": "SnapDrop/snapdrop", "stars": 19706, "tags": ["webrtc", "pwa", "local-file-sharing", "airdrop-alternative", "peer-to-peer", "web-server", "nodejs", "docker"], "topics": ["webrtc", "pwa", "snapdrop"], "urls": [], "use_cases": ["transfer files between devices on the same wifi network", "airdrop alternative for android and windows", "share files between phone and computer without cables", "self-host a local file sharing service with docker", "send files between devices without uploading to the cloud", "share text messages between nearby devices in the browser"], "what_it_is": "Snapdrop is a Progressive Web App for local file sharing between devices on the same network, inspired by Apple's AirDrop, built with vanilla HTML5/ES6/CSS3, WebRTC, WebSockets, and a Node.js backend. The project was acquired by LimeWire, but the classic open-source version remains available and can be self-hosted via Docker.", "when_to_avoid": ["you need to transfer files between devices on different networks or over the internet", "you want active development and new features, since the project is in maintenance after the LimeWire acquisition", "you need large-scale file storage or AI-powered file tools, which the hosted LimeWire service provides instead"], "when_to_choose": ["you need cable-free, cloud-free file transfer between devices on the same local network", "you want a self-hosted AirDrop-like service that works across platforms in any browser", "you prefer anonymous, end-to-end encrypted peer-to-peer transfers without accounts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/snapdrop", "repo": "SnapDrop/snapdrop", "role": "main", "score": 35}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "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:11:29.101929+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:29.101929+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:59:52.550120+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "90990ea35e441163502d4255acfbf8bdc0f1c25796ee0bb4b2192198d10abbb4", "fetched_at": "2026-08-28T04:11:29.101929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SnapDrop/snapdrop"}, {"content_hash": "a730fa28b9ef4dc05b18fe1a606cdfdde9ac105dbcd80a7f6d503ce7224cbda7", "fetched_at": "2026-08-29T07:58:28.416988+00:00", "kind": "homepage", "missing": false, "url": "https://snapdrop.net"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 6, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3911, "days_push": 569, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 35, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}