{"adoption": {"forks": 90, "observed_at": "2026-08-28T04:04:57.914235+00:00", "stars": 1522}, "canonical_url": "https://ross.abutalabs.com/products/lelylan", "card": {"archived": false, "artifact_type": "framework", "description": "Open Source Lightweight Microservices Architecture for the Internet of Things. For developers.", "domain": ["iot", "microservices", "cloud-computing", "developer-tools", "apis"], "enriched": true, "function": ["microservices", "api-framework", "message-queue", "websocket", "auth", "webhook", "iot"], "health_score": 20, "homepage": null, "language": null, "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["lelylan/lelylan"], "name": "lelylan/lelylan", "platform": ["self-hosted", "cloud", "python"], "pushed_at": "2017-03-12T09:14:13+00:00", "repo": "lelylan/lelylan", "stars": 1522, "tags": ["mqtt", "hardware-agnostic", "iot-platform", "device-management", "architecture-documentation", "ruby", "mongodb", "redis", "docker", "linux", "nodejs"], "topics": ["iot", "lelylan", "microservice", "architecture", "docker", "hardware"], "urls": [], "use_cases": ["build an IoT cloud platform with microservices", "connect heterogeneous hardware devices to a cloud API", "self-host an IoT device management backend", "learn microservices architecture for IoT", "forward MQTT device messages to HTTP webhooks", "manage device types and real-time device subscriptions"], "what_it_is": "Lelylan is an open-source IoT cloud platform built on a lightweight microservices architecture, composed of many small services for device control, MQTT messaging, webhooks, websockets, and OAuth. This repository serves as the architecture documentation hub linking to the individual microservice implementations.", "when_to_avoid": ["you need a maintained, production-ready IoT platform - the project has not seen releases since 2017", "you want a single deployable application rather than many microservices with old dependencies", "you cannot work with outdated stacks like Ruby 1.9, Node 0.8, MongoDB 2.6, and Redis 2.6"], "when_to_choose": ["you want a self-hosted, hardware-agnostic IoT platform you can study or extend", "you need a reference architecture for decomposing an IoT backend into microservices", "you work with MQTT-based devices and want HTTP/websocket bridges"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lelylan", "repo": "lelylan/lelylan", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "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:04:57.914235+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:57.914235+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:31:47.836730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f919d102aba0b444d7e3ce26ea77829bce828cf6fe93a8a58ef912ca205e21b4", "fetched_at": "2026-08-28T04:04:57.914235+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lelylan/lelylan"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "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": 5150, "days_push": 3461, "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}}