{"adoption": {"forks": 11, "observed_at": "2026-08-28T04:08:46.949410+00:00", "stars": 4379}, "canonical_url": "https://ross.abutalabs.com/products/blinker-js", "card": {"archived": false, "artifact_type": "library", "description": "Blinker node.js library for hardware. Works with Raspberry Pi, Banana Pi, linux, windows, macos.", "domain": ["iot", "developer-tools", "hardware"], "enriched": true, "function": ["iot", "message-queue", "sdk"], "health_score": 28, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["blinker-iot/blinker-js"], "name": "blinker-iot/blinker-js", "platform": ["windows", "iot"], "pushed_at": "2025-03-26T06:55:59+00:00", "repo": "blinker-iot/blinker-js", "stars": 4379, "tags": ["mqtt", "typescript", "smart-home", "embedded-devices", "mobile-app-pairing", "nodejs", "linux", "macos"], "topics": ["typescript", "linux", "raspberry-pi", "mqtt", "iot"], "urls": [], "use_cases": ["control a raspberry pi from a phone app", "build an iot device with node.js and mqtt", "connect embedded linux boards to a mobile dashboard", "toggle gpio devices remotely over wifi", "create custom smart home device interfaces"], "what_it_is": "Blinker is a JavaScript/TypeScript SDK for connecting hardware devices (like Raspberry Pi) to the Blinker IoT platform via MQTT or local network communication. It lets developers build IoT device programs in Node.js that pair with the Blinker mobile app for remote control.", "when_to_avoid": ["you need a general-purpose MQTT client without the blinker app ecosystem", "you're not using Node.js/TypeScript", "you need bare-metal microcontroller support without an OS"], "when_to_choose": ["you want to control hardware from the blinker mobile app", "you're building IoT projects on Raspberry Pi or similar boards with Node.js", "you need both LAN and remote MQTT connectivity"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blinker-js", "repo": "blinker-iot/blinker-js", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-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:08:46.949410+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.949410+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:18.381951+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6de16c6f4bec76bf75beb3a39cd31e7e1b65175956b87a1bdc83c8cf9ef7ffae", "fetched_at": "2026-08-28T04:08:46.949410+00:00", "kind": "readme", "missing": false, "url": "https://github.com/blinker-iot/blinker-js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 13, "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": 3046, "days_push": 525, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}