{"adoption": {"forks": 403, "observed_at": "2026-08-28T04:07:09.177580+00:00", "stars": 2667}, "canonical_url": "https://ross.abutalabs.com/products/micromdm", "card": {"archived": false, "artifact_type": "service", "description": "Mobile Device Management server", "domain": ["apple-ecosystem", "self-hosted", "erp"], "enriched": true, "function": ["api-framework", "http-server", "webhook", "deployment", "security"], "health_score": 94, "homepage": "https://micromdm.io", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["micromdm/micromdm"], "name": "micromdm/micromdm", "platform": ["self-hosted", "go"], "pushed_at": "2026-08-18T21:38:56+00:00", "repo": "micromdm/micromdm", "stars": 2667, "tags": ["mdm", "mobile-device-management", "macadmins", "apple-devices", "device-enrollment", "dep", "api-driven", "macos-management", "ios-management", "devops-friendly", "devops", "automation", "macos", "ios", "linux", "docker"], "topics": ["mdm", "apple", "micromdm", "macadmins", "macadmin"], "urls": [], "use_cases": ["manage a fleet of macs and ipads from a self-hosted server", "enroll apple devices into mdm via apple dep", "automate device management tasks through an api", "send mdm commands and process device responses with webhooks", "bootstrap mac deployments for enterprise or education", "replace commercial mdm with an open-source alternative"], "what_it_is": "MicroMDM is an open-source Mobile Device Management (MDM) server for Apple devices, built in Go and designed to be API-first so all management actions can be automated. It supports device enrollment via DEP or manual profile installation, command scheduling, and webhooks for processing device responses.", "when_to_avoid": ["you need a project with active long-term support - MicroMDM v1 is in maintenance mode with support ending at the end of 2025", "you should consider NanoMDM and the Nano-suite of projects instead for new deployments", "you need management for non-Apple platforms", "you want a polished GUI-first MDM rather than an API-centric tool"], "when_to_choose": ["you need an api-driven, devops-friendly mdm server for apple devices", "you want to self-host device management for macs, iphones, or ipads", "you need DEP-based enrollment and webhook-driven automation", "you prefer open-source and permissively licensed tooling for macadmins workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/micromdm", "repo": "micromdm/micromdm", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "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:07:09.177580+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.177580+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:18:15.159270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc75a986d81b6882315042f8327a849c3613f232d1dd04300a93239d1861b389", "fetched_at": "2026-08-28T04:07:09.177580+00:00", "kind": "readme", "missing": false, "url": "https://github.com/micromdm/micromdm"}, {"content_hash": "d7bce2cd2e41374bc1cc99f2780b85c5a2b0ac279280464c27a5adf9f7611bf6", "fetched_at": "2026-08-29T10:00:52.695467+00:00", "kind": "homepage", "missing": false, "url": "https://micromdm.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 20}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3821, "days_push": 15, "days_rel": 320, "gap_med": 266, "n_releases_24m": 2}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}