const { useState, useEffect } = React; const PLANS = [ { id: "starter", name: "Starter", devices: "Up to 25 devices", price: 3, features: [ "MDM management", "Fleet dashboard & analytics", "Declarative Device Management (DDM)", "Osquery telemetry & ad-hoc queries", "Community support", ], excluded: ["IdP login / Platform SSO"], }, { id: "business", name: "Business", devices: "Up to 250 devices", price: 4, popular: true, features: [ "Everything in Starter, plus:", "IdP login / Platform SSO", "Telemetry / SIEM forwarding", "Auto-deploy rules", "API access", "Priority email & chat support", ], }, { id: "enterprise", name: "Enterprise", devices: "Unlimited devices", price: 5, features: [ "Everything in Business", "Dedicated infrastructure", "SLA guarantee", "Onboarding call", "Custom integrations", ], }, ]; const features = [ { icon: "🔐", title: "All the MDM Essentials", desc: "Signed enrollment with DEP/ADE zero-touch onboarding, push .mobileconfig profiles and .pkg packages fleet-wide — Wi-Fi, VPN, certificates, passcode policies, restrictions — everything you expect from MDM, ready out of the box.", }, { icon: "⚡", title: "DDM and Profile Templates", desc: "Use Apple Declarative Device Management together with reusable configuration profile templates. Define passcode rules, software update deadlines, restrictions, and settings once — devices enforce them locally and stay compliant without constant server check-ins.", }, { icon: "🔑", title: "IdP Login / Platform SSO", desc: "Users log into their Mac with Okta, Azure AD, Google Workspace, or JumpCloud credentials. Automatic account creation from IdP attributes — no manual provisioning.", badge: "Business+", }, { icon: "🔍", title: "Osquery Telemetry & Ad-Hoc Queries", desc: "Push SQL query packs to enrolled devices — monitor running processes, browser extensions, installed certificates, USB devices, and 200+ osquery tables. Run ad-hoc queries for instant fleet-wide answers.", }, { icon: "📡", title: "Telemetry Forwarding", desc: "Forward osquery results to Datadog, Prometheus, Grafana, Splunk, or any custom webhook endpoint. Configurable batch intervals and API key auth — plug straight into your existing observability stack.", badge: "Business+", }, { icon: "🛡️", title: "Security Change Alerts", desc: "Detect newly added local administrators and certificates in the system keychain or trust store during agent check-ins. ZenMDM records each change in the device log and emits an OTLP security event when telemetry export is configured.", }, { icon: "🔌", title: "Bring Your Own Security", desc: "ZenMDM stays lean and integrates instead of locking you in. Forward device telemetry and audit events to your SIEM, and pair with the endpoint-security stack you already trust — CrowdStrike, Santa, ZenShield, or your own EDR agent deployed as a package.", }, { icon: "🐧", title: "Linux & Android, Too", desc: "Not just Apple. A lightweight Go agent brings Linux endpoints under management (package + config policies, remote scripts, osquery), and Android Enterprise policies and apps are managed from the same console.", }, { icon: "🤖", title: "AI Co-Pilot", desc: "A chat-style assistant inside the admin UI that translates plain-language intents into MDM artifacts and helps diagnose device and fleet issues.", }, { icon: "🏗️", title: "GitOps: Terraform + CLI", desc: "Manage your entire MDM server as code — profiles, packages, device groups, DDM policies, IdP settings, osquery packs, and telemetry forwarding in version-controlled HCL, plus a fleet-as-code CLI (plan / apply / export). Review changes in PRs before they hit your fleet.", }, ]; function MDMLanding() { // Platform URL for the Sign in and brand links: /site-config's app_url // (#842). The platform serves this page on the MDM host and routes /api/ on // every host, so the fetch is same-origin. Guessing from the hostname was // wrong under the zensys.app layout (stripping "mdm." from mdm.zensys.app // gives the marketing apex, not app.zensys.app). Until it loads — or if it // fails — links stay on this origin rather than on a guessed host. Sign-ups // are currently disabled in the UI: Get Started / Start free trial render as // disabled buttons. const [platform, setPlatform] = useState(window.location.origin); useEffect(() => { fetch("/api/v1/site-config") .then(r => { if (!r.ok) throw new Error(r.status); return r.json(); }) .then(data => { // Only an absolute http(s) URL may become an href: a javascript: or // other value from a misconfigured server must not reach the links. if (data && typeof data.app_url === "string" && /^https?:\/\/[^\s]+$/.test(data.app_url)) { setPlatform(data.app_url.replace(/\/+$/, "")); } }) .catch(err => console.warn("site-config fetch failed:", err)); }, []); const [hoveredCard, setHoveredCard] = useState(null); return (
Deploy a fully managed macOS MDM server in minutes. Push profiles, enforce policies, collect telemetry — manage it all with Terraform, API or the dashboard. No infrastructure expertise required.
Signups are disabled currently
{f.desc}
14-day free trial on all plans. No credit card required. All prices in EUR.
{plan.devices}
Signups are disabled currently