{"adoption": {"forks": 436, "observed_at": "2026-08-28T04:04:50.630026+00:00", "stars": 1479}, "canonical_url": "https://ross.abutalabs.com/products/esp-rfid", "card": {"archived": false, "artifact_type": "application", "description": "ESP8266 RFID (RC522, PN532, Wiegand, RDM6300) Access Control system featuring WebSocket, JSON, NTP Client, Javascript, SPIFFS", "domain": ["iot", "security", "self-hosted", "hardware"], "enriched": true, "function": ["websocket", "http-server", "auth", "iot"], "health_score": 87, "homepage": null, "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["esprfid/esp-rfid"], "name": "esprfid/esp-rfid", "platform": ["embedded", "iot"], "pushed_at": "2026-06-17T04:39:34+00:00", "repo": "esprfid/esp-rfid", "stars": 1479, "tags": ["esp8266", "rfid", "access-control", "door-lock", "mqtt", "hardware", "firmware", "web-server"], "topics": ["esp8266", "mfrc522", "rc522", "rfid-rc522", "rfid-doorlock-application", "rfid-reader", "websocket", "esp8266-rfid", "wiegand", "rfid-hardware", "pn532", "access-control", "access-management", "rdm6300", "esp8266-websocket", "rfid-tags", "esp-rfid", "flash", "board", "hacktoberfest"], "urls": [], "use_cases": ["build an RFID door lock for a maker space", "manage access control users via a web UI", "flash an ESP8266 to read RC522 or PN532 RFID tags", "log door access events with timestamps", "integrate RFID access events with MQTT", "use Wiegand readers with an ESP8266 access system"], "what_it_is": "ESP RFID is an open-source access control system that runs on the ESP8266 microcontroller and supports MFRC522, PN532, RDM6300, and Wiegand RFID readers. It provides a web-based UI over WebSocket/JSON for managing up to 1,000 users, with NTP time sync and MQTT support for door access scenarios like maker spaces and labs.", "when_to_avoid": ["you need enterprise-grade access control with auditing and compliance", "your hardware is not ESP8266-based or uses unsupported readers", "you need large-scale deployments beyond ~1,000 users per controller", "you require battery-powered or low-power operation"], "when_to_choose": ["you want a cheap, self-hosted RFID access control system", "you use supported readers like RC522, PN532, RDM6300, or Wiegand", "you need a web UI for managing users without extra infrastructure", "you want open-source hardware and firmware you can tinker with"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/esp-rfid", "repo": "esprfid/esp-rfid", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "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:50.630026+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.630026+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.075566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a2e7271c1f33832e2e27d28fea8544754645a195a5008d8bb99dd65633d1ff59", "fetched_at": "2026-08-28T04:04:50.630026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/esprfid/esp-rfid"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3402, "days_push": 77, "days_rel": 669, "gap_med": null, "n_releases_24m": 1}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}