{
 "features_resolved": {
  "snapshot_any": false,
  "snapshot_mem": false,
  "fork": false,
  "pause_resume": false,
  "persistent_disk": false,
  "whole_disk": false,
  "persist_scope": null,
  "volumes": false,
  "auto_stop_idle": false,
  "long_sessions": false,
  "custom_image": false,
  "image_snapshot": false,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": false,
  "nested_virt": true,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "open_internet": true,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": false,
  "sso": true,
  "gpu": false,
  "arm64": true,
  "windows": false,
  "macos": true,
  "lang_python": false,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": true,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": false,
  "mcp_server": true,
  "usage_api": false,
  "snapshot_auto": false,
  "snapshot_on_demand": false,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": false,
  "guest_firewall": true,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "expo",
  "checked": "2026-09-30",
  "company": "650 Industries, Inc. (dba Expo)",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.ycombinator.com/companies/expo",
   "quote": "Expo brings together the best of web and native app development"
  },
  "stage": {
   "value": "series-b",
   "source": "https://www.techcompanynews.com/expo-raises-45-million-in-series-b-funding-round/",
   "quote": "Expo announced a $45 million Series B funding round, led by Georgian with participation from Leadout Capital, A.Capital Ventures, and Red Swan Ventures.",
   "confidence": "high",
   "note": "Corroborated by multiple contemporaneous outlets (citybiz, Ventureburn, PR Newswire headline, Preqin) all naming the same April 2026 $45M ($44.32M per Preqin) Series B led by Georgian."
  },
  "accelerators": [
   {
    "name": "Y Combinator",
    "batch": "Summer 2016",
    "source": "https://www.ycombinator.com/companies/expo",
    "quote": "Founded: 2016 Batch: Summer 2016 Team Size: 40 Status: Active",
    "confidence": "high",
    "via": "research"
   }
  ],
  "total_funding_usd": {
   "value": 70000000,
   "status": "estimated",
   "basis": "techcompanynews.com: 'This brings the company's total capital raised to date into the range of approximately $70 million, following roughly $25 million in prior rounds' (i.e. ~$25M pre-Series-B + $45M Series B)",
   "source": "https://www.techcompanynews.com/expo-raises-45-million-in-series-b-funding-round/",
   "quote": "This brings the company's total capital raised to date into the range of approximately $70 million, following roughly $25 million in prior rounds."
  },
  "last_round": {
   "type": "series-b",
   "amount_usd": 45000000,
   "date": "2026-04",
   "leads": [
    "Georgian"
   ],
   "status": "confirmed",
   "source": "https://www.techcompanynews.com/expo-raises-45-million-in-series-b-funding-round/",
   "quote": "Expo secured $45 million in a Series B round led by Georgian, pushing its total funding to roughly $70 million."
  },
  "investors": [
   "Georgian",
   "Leadout Capital",
   "A.Capital Ventures",
   "Red Swan Ventures"
  ],
  "portfolio_listings": [
   {
    "source": "Georgian",
    "company": "Expo",
    "batch": 2026,
    "how": "domain"
   }
  ],
  "revenue": {
   "value_usd": 9500000,
   "kind": "annual revenue",
   "as_of": "2026",
   "status": "estimated",
   "basis": "Growjo third-party estimate",
   "source": "https://growjo.com/company/Expo",
   "quote": "Expo's estimated annual revenue is currently $9.5M per year."
  },
  "employees": {
   "value": 73,
   "source": "https://growjo.com/company/Expo"
  },
  "note": "YC hint confirmed: YC directory page for 'Expo' (Summer 2016 batch, Active, founders Charlie Cheever and James Ide) lists website https://expo.dev, matching this provider's card exactly. Legal entity is 650 Industries, Inc., founded 2015/2016 by Charlie Cheever (Quora co-founder) and James Ide. Raised a $45M Series B (led by Georgian; Preqin cites $44.32M at a $299.75M post-money valuation) in April 2026, alongside launching an 'Expo Agent' AI coding-assistant product; revenue/ARR and total funding figures beyond the Series B itself rest on third-party estimates (Growjo, techcompanynews.com/Preqin), not a company-disclosed number."
 },
 "id": "expo",
 "name": "Expo",
 "url": "https://expo.dev",
 "category": "macos",
 "isolation": "vm",
 "modes": [
  {
   "key": "ios-medium",
   "label": "iOS build, medium worker",
   "flags": [],
   "os": [
    "macos"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "iOS medium (5 performance cores / 20 GiB, Mac mini)",
     "vcpu": 5,
     "ram_gib": 20,
     "disk_gib": 110,
     "hour": 0,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 2,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "EAS Build is priced per build, not per minute (expo.dev/pricing 2026-09-28): iOS build, medium worker = $2 per build, encoded as start_fee with hour 0. Build length does not change the price, up to the plan build timeout.",
   "product_class": "ci-runner",
   "no_reuse": true
  },
  {
   "key": "ios-large",
   "label": "iOS build, large worker",
   "flags": [],
   "os": [
    "macos"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "iOS large (10 performance cores / 40 GiB, Mac mini)",
     "vcpu": 10,
     "ram_gib": 40,
     "disk_gib": 110,
     "hour": 0,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 4,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "EAS Build is priced per build, not per minute (expo.dev/pricing 2026-09-28): iOS build, large worker = $4 per build, encoded as start_fee with hour 0. Build length does not change the price, up to the plan build timeout.",
   "product_class": "ci-runner",
   "no_reuse": true
  },
  {
   "key": "android-medium",
   "label": "Android build, medium worker",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "Android medium (4 vCPU / 16 GB, GCE n2/c3d-standard-4)",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": null,
     "hour": 0,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 1,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "EAS Build is priced per build, not per minute (expo.dev/pricing 2026-09-28): Android build, medium worker = $1 per build, encoded as start_fee with hour 0. Build length does not change the price, up to the plan build timeout.",
   "product_class": "ci-runner",
   "no_reuse": true
  },
  {
   "key": "android-large",
   "label": "Android build, large worker",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "Android large (8 vCPU / 32 GB, GCE n2/c3d-standard-8)",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": null,
     "hour": 0,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 2,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "EAS Build is priced per build, not per minute (expo.dev/pricing 2026-09-28): Android build, large worker = $2 per build, encoded as start_fee with hour 0. Build length does not change the price, up to the plan build timeout.",
   "product_class": "ci-runner",
   "no_reuse": true
  },
  {
   "key": "wf-linux-medium",
   "label": "Workflows linux-medium (4 vCPU / 16 GiB / 14 GiB SSD)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows linux-medium (4 vCPU / 16 GiB / 14 GiB SSD)",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 14,
     "hour": 1.08,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.018/min = $1.08/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes)."
  },
  {
   "key": "wf-linux-medium-nested",
   "label": "Workflows linux-medium-nested-virtualization (4 vCPU / 16 GiB)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "nested_virt": true
   },
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows linux-medium-nested-virtualization (4 vCPU / 16 GiB)",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 14,
     "hour": 1.2,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.02/min = $1.2/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes). Allows Android Emulators (nested virtualization)."
  },
  {
   "key": "wf-linux-large",
   "label": "Workflows linux-large (8 vCPU / 32 GiB / 28 GiB SSD)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows linux-large (8 vCPU / 32 GiB / 28 GiB SSD)",
     "vcpu": 8,
     "ram_gib": 32,
     "disk_gib": 28,
     "hour": 2.1,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.035/min = $2.1/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes). Large workers not available on Free."
  },
  {
   "key": "wf-linux-large-nested",
   "label": "Workflows linux-large-nested-virtualization (4 vCPU / 16-32 GiB)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "nested_virt": true
   },
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows linux-large-nested-virtualization (4 vCPU / 16-32 GiB)",
     "vcpu": 4,
     "ram_gib": 16,
     "disk_gib": 28,
     "hour": 2.4,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.04/min = $2.4/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes). Pricing page says 4 vCPU/16 GiB; syntax doc says 4 vCPU/32 GiB (conservative 16 GiB encoded). Large workers not on Free."
  },
  {
   "key": "wf-macos-medium",
   "label": "Workflows macos-medium (5 cores / 20 GiB)",
   "flags": [],
   "os": [
    "macos"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows macos-medium (5 cores / 20 GiB)",
     "vcpu": 5,
     "ram_gib": 20,
     "disk_gib": 110,
     "hour": 4.5,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.075/min = $4.5/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes). Syntax doc says 125 GiB SSD; pricing.md says 110 GB. Runs iOS simulators."
  },
  {
   "key": "wf-macos-large",
   "label": "Workflows macos-large (10 cores / 40 GiB)",
   "flags": [],
   "os": [
    "macos"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Workflows macos-large (10 cores / 40 GiB)",
     "vcpu": 10,
     "ram_gib": 40,
     "disk_gib": 110,
     "hour": 9,
     "month_cap": null
    }
   ],
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "product_class": "ci-runner",
   "no_reuse": true,
   "note": "EAS Workflows custom/non-build job worker, $0.15/min = $9.0/h (expo.dev/pricing.md, 2026-09-29). 'Billed per minute'; exact rounding rule (per started minute) not published, 60 s assumed. Free plan includes 60 CI/CD minutes/month; whether paid-plan build credit offsets CI/CD minutes is not stated (pricing table lists build credit under Builds and 'Usage-based pricing' under CI/CD minutes). Large workers not on Free."
  }
 ],
 "storage": {
  "included_disk_gib": null,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": null,
  "paused_ram_billed": null
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": null,
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Free",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 5,
   "max_session_h": 0.75,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": [
    "iOS medium (5 performance cores / 20 GiB, Mac mini)",
    "Android medium (4 vCPU / 16 GB, GCE n2/c3d-standard-4)"
   ],
   "note": "15 Android + 15 iOS builds/month + 60 CI/CD Workflows minutes; 5 concurrencies, up to 1 on macOS; low-priority queue (90+ min waits at peak); medium workers only; hard cap: no overage possible, builds stop until the 1st of next calendar month."
  },
  {
   "name": "Starter",
   "fee": 19,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 5,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$19/month, $45 build credit; 5 concurrencies, up to 2 on macOS; 2-hour timeout."
  },
  {
   "name": "Starter + 1 extra concurrency",
   "fee": 69,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 6,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Starter plus 1 x $50 extra concurrency: 6 concurrencies total (5 included, up to 2 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Starter + 2 extra concurrency",
   "fee": 119,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 7,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Starter plus 2 x $50 extra concurrency: 7 concurrencies total (5 included, up to 2 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Starter + 3 extra concurrency",
   "fee": 169,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 8,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Starter plus 3 x $50 extra concurrency: 8 concurrencies total (5 included, up to 2 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Starter + 4 extra concurrency",
   "fee": 219,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 9,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Starter plus 4 x $50 extra concurrency: 9 concurrencies total (5 included, up to 2 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Production",
   "fee": 199,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 15,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$199/month, $225 build credit; 15 concurrencies, up to 10 on macOS; 2-hour timeout."
  },
  {
   "name": "Production + 1 extra concurrency",
   "fee": 249,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 16,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Production plus 1 x $50 extra concurrency: 16 concurrencies total (15 included, up to 10 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Production + 2 extra concurrency",
   "fee": 299,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 17,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Production plus 2 x $50 extra concurrency: 17 concurrencies total (15 included, up to 10 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Production + 3 extra concurrency",
   "fee": 349,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 18,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Production plus 3 x $50 extra concurrency: 18 concurrencies total (15 included, up to 10 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": false,
   "included_usd": 1000,
   "per_seat": 0,
   "concurrency": 20,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Custom price; $1,000 build credit; 20 concurrencies, up to 15 on macOS ($50/extra)."
  },
  {
   "name": "Starter + 5 extra concurrency",
   "fee": 269,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 45,
   "per_seat": 0,
   "concurrency": 10,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Starter plus 5 x $50 extra concurrency: 10 concurrencies total (5 included, up to 2 on macOS before extras; whether extras raise the macOS limit is not stated); self-serve maximum is 5 extra."
  },
  {
   "name": "Production + 4 extra concurrency",
   "fee": 399,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 19,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Production plus 4 x $50 extra concurrency: 19 concurrencies total (15 included, up to 10 on macOS before extras; whether extras raise the macOS limit is not stated)."
  },
  {
   "name": "Production + 5 extra concurrency",
   "fee": 449,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 225,
   "per_seat": 0,
   "concurrency": 20,
   "max_session_h": 2,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Production plus 5 x $50 extra concurrency: 20 concurrencies total (15 included, up to 10 on macOS before extras; whether extras raise the macOS limit is not stated); self-serve maximum is 5 extra."
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": null
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": true,
  "arm64": true,
  "gpu": false,
  "snapshot": "none",
  "pause_resume": false,
  "fork": false,
  "persistent_disk": false,
  "volumes": null,
  "auto_stop_idle": false,
  "max_session_h": 2,
  "custom_image": false,
  "docker_inside": false,
  "nested_virt": true,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": false,
  "sso": true,
  "gpu_types": [],
  "regions": null,
  "lang_python": false,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": true,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": false,
  "mcp_server": true,
  "snapshot_auto": false,
  "snapshot_on_demand": false,
  "harness_api": false,
  "secret_proxy": false,
  "volume_attach": false,
  "volume_shared": false,
  "isolation": "dedicated-vm",
  "image_oci": false,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "static-datacenter",
  "own_agent_api": false,
  "ingress_rules": false,
  "guest_firewall": true,
  "open_internet": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "caveats": [
  "EAS Build (expo.dev/pricing 2026-09-28): Android medium $1 / large $2 per build; iOS medium $2 / large $4 per build. Plans: Free (15+15 builds, 5 concurrencies / 1 on macOS, 45-min timeout), Starter $19 ($45 credit, 5 / 2 on macOS), Production $199 ($225 credit, 15 / 10 on macOS), Enterprise custom ($1,000 credit, 20 / 15 on macOS); extra concurrency $50 each (concurrencies re-checked 2026-10-14). Specs from docs.expo.dev/build-reference/infrastructure.",
  "Per-build pricing: only mobile app builds from your Expo/React Native project run here; not a general macOS machine. Encoded as start_fee per session with hour 0 (engine counts fees).",
  "Free-plan included builds (15 iOS + 15 Android) are not converted to a $ credit.",
  "Self-serve extra concurrency: up to 5 extra at $50 each on Starter (max 10) and Production (max 20); Enterprise 20 included, $50/extra; beyond 5 extra = contact sales.",
  "Builds canceled before any work is done are free; build jobs inside Workflows use the same flat per-build price.",
  "iOS worker core type conflicts across official pages: build infrastructure doc says '5 performance cores' / '10 performance cores' with 110 GB SSD; pricing.md and Workflows syntax say 'efficiency cores' (syntax: 125 GiB SSD).",
  "Concurrency has a lower macOS sub-limit inside each plan total (expo.dev/pricing 2026-10-14: \"The number shown is the maximum across all platforms; macOS jobs have their own, lower maximum within that total.\"): Free 1, Starter 2, Production 10, Enterprise 15 macOS jobs at once. Plan concurrency here is the all-platform total, so iOS/macOS workloads above the macOS limit are under-limited in the estimate; whether $50 extras raise the macOS limit is not stated."
 ],
 "sources": [
  "https://expo.dev/pricing",
  "https://docs.expo.dev/build-reference/infrastructure/",
  "https://docs.expo.dev/"
 ],
 "fleet": {
  "default_max_instances": 5,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": null,
  "tiers": "Free 5 concurrencies (1 on macOS); Starter 5 (2 on macOS); Production 15 (10 on macOS); Enterprise 20 included (15 on macOS). Starter/Production can buy up to 5 extra at $50 each; Enterprise extra/custom.",
  "notes": "EAS Build slots, not persistent general-purpose VMs. Public pricing rendered in Chrome. Paid concurrency additions are $50 each; credits and build queues also constrain fleet. No universal approval turnaround published. Max 50 pending (queued) builds per platform per account; self-serve extra concurrency capped at 5 extra ($50 each) on Starter/Production, beyond that contact sales. A concurrency is one job running at a time; macOS jobs have their own lower maximum within the plan total. Free: low-priority queue, 90+ min waits at peak.",
  "sources": [
   "https://expo.dev/pricing",
   "https://docs.expo.dev/billing/plans/"
  ],
  "researched": "2026-10-14"
 },
 "audit_2026_09_29": {
  "applied": 16,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 11
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "iOS builder VMs run on Mac mini hosts in an isolated environment. Every build gets its own fresh macOS VM.",
   "note": "Ephemeral per-build/per-job VMs (Android: 'Every build gets its own dedicated VM instance'); nothing is saved when a job ends except explicit cache/artifacts.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": false,
   "source": "https://docs.expo.dev/eas/workflows/syntax/",
   "quote": "Saves a cache to a specified key. This allows you to persist build artifacts, compiled dependencies, or other intermediate outputs that can be reused in subsequent builds to speed up the build process.",
   "note": "Only directory caches (eas/save_cache / eas/restore_cache) keyed by path; no VM/disk snapshot or custom-image capture. VM images are Expo-provided (sdk-XX/latest/auto).",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://docs.expo.dev/agents/",
   "quote": "Claude Code and Codex have an official Expo plugin. One command installs [Expo Skills](https://docs.expo.dev/skills.md) and registers the [Expo Model Context Protocol (MCP) Server](https://docs.expo.dev/mcp.md).",
   "note": "Agent support is skills/MCP for agents running on the developer's machine. EAS Workflows pre-packaged jobs (build, deploy, fingerprint, submit, testflight, update, maestro, slack, github-comment, require-approval, doc, repack...) include no agent-harness job; custom jobs are generic shell steps.",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": false,
   "source": "https://docs.expo.dev/eas/environment-variables/",
   "quote": "**Secret type environment variables** are intended to provide values to an EAS Build or Workflows job so that they may be used to alter how a job runs.",
   "note": "Secrets are environment variables delivered into the job VM ('Not readable outside of the EAS servers ... obfuscated in EAS Build and Workflows job logs'); no injecting proxy.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Android builders run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance.",
   "note": "No attachable volumes documented; persistence between jobs is only via save/restore cache, artifacts and Expo's internal npm/Maven/CocoaPods caches. iOS VMs have fixed 110 GB SSD.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own fresh macOS VM.",
   "note": "No shared filesystem between concurrent jobs; caches are key-based save/restore (user/branch-scoped), not mounted.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "dedicated-vm",
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Android builders run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance. ... iOS builder VMs run on Mac mini hosts in an isolated environment. Every build gets its own fresh macOS VM.",
   "note": "Linux/Android builds run on dedicated GCE VM instances (GCP); macOS/iOS builds run on dedicated VMs on Expo's own Mac mini hosts. Underlying hypervisor (KVM vs Apple Virtualization) is not disclosed, so the generic 'dedicated-vm' isolation is used rather than a specific hypervisor tag.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "When selecting an image for the build you can use the full name provided below or one of the aliases: auto, latest, or for a particular SDK such as sdk-57.",
   "note": "Builds select from Expo-provided fixed OS/toolchain images by name/alias; there is no way to supply your own Docker/OCI image to boot the build VM.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope (per-build mobile app compilation workers, not an interactive VNC/RDP desktop)",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope (mobile CI build/workflow workers, not browser automation)",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "static-datacenter",
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "A list of the IP addresses of the build servers is available in this file. We do not expect to change the list often. ... Linux runners are hosted in Google Cloud Platform. macOS runners are hosted in our own macOS cloud.",
   "note": "Fixed, published list of datacenter (GCP / Expo macOS cloud) egress IPs.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/local-builds/",
   "quote": "Server infrastructure ... Run EAS Build locally",
   "note": "No documented SSH access into a running cloud build/workflow worker; the offered alternative for direct interaction is running the build locally on your own machine, not SSH into the cloud VM.",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "none",
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance. ... Every build gets its own fresh macOS VM.",
   "note": "Workers are ephemeral per-build/per-job VMs with no documented disk or memory snapshot/checkpoint mechanism; only key-based cache save/restore and build artifacts persist.",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance.",
   "note": "not offered: outside the product's scope (fresh per-job VM from a fixed image each time, no clone-a-machine API)",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance.",
   "note": "not offered: outside the product's scope (a build/workflow job runs to completion or is canceled; there is no pause/resume of a worker)",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope (each build/workflow run is a new dispatched job on a fresh VM, not a stopped machine that wakes on an incoming request)",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own dedicated VM instance.",
   "note": "not offered: outside the product's scope; the VM is destroyed when the job finishes/is canceled or times out, not put to sleep on idle",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Build resources: medium: 5 performance cores, 20 GiB RAM ... large: 10 performance cores, 40 GiB RAM",
   "note": "not offered: outside the product's scope; worker size (medium/large) is fixed at job start via eas.json, not resizable on a running machine",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://docs.expo.dev/agents/",
   "quote": "Claude Code and Codex have an official Expo plugin. One command installs Expo Skills and registers the Expo Model Context Protocol (MCP) Server.",
   "note": "Claude Code/Codex/Cursor integration is skills + an MCP server for agents running on the developer's own machine to help write Expo apps; no coding-agent harness is preinstalled inside the EAS Build/Workflows job VMs.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://docs.expo.dev/agents/",
   "quote": "Claude Code and Codex have an official Expo plugin.",
   "note": "not offered: no first-party API driving a provider-owned browser/computer-use/research agent; the AI features are skills/MCP for external coding agents, not a hosted task agent",
   "checked": "2026-09-30"
  },
  "lang_python": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Images for each platform have one specific version of Node.js, Yarn, CocoaPods, Xcode, Ruby, Fastlane, and so on.",
   "note": "Documented build-image toolchain lists Node.js, Yarn, CocoaPods, Xcode, Ruby, Fastlane, Java, node-gyp, etc.; Python is not listed as a provided runtime.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "macOS Tahoe 26.6.2 Xcode 27.1 beta (27A9269) Node.js 22.23.2 Bun 1.4.2 Yarn 1.22.22",
   "note": "Node.js is a core, versioned part of every build image (both Android and iOS).",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope; build/workflow workers are outbound-only compile jobs with no documented per-machine public inbound IP",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope; EAS Hosting (a separate product) serves inbound HTTPS, not the build/workflow workers modeled here",
   "checked": "2026-09-30"
  },
  "ingress_rules": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: outside the product's scope (no exposed inbound ports to control)",
   "checked": "2026-09-30"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "A list of the IP addresses of the build servers is available in this file.",
   "note": "Only a static, published outbound IP list for allow-listing on your own infrastructure is documented; no provider-side control over what the build worker itself can reach (allow/deny lists, no-internet mode) is documented.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "A list of the IP addresses of the build servers is available in this file.",
   "note": "not offered: no HTTP method/path-level egress rules documented",
   "checked": "2026-09-30"
  },
  "guest_firewall": {
   "value": true,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "If there is no dedicated configuration option you are looking for, you can use npm hooks to install or update any system dependencies with apt-get or brew.",
   "note": "derived: build/workflow workers are dedicated VMs with root-level package install access (apt-get on Linux, brew on macOS), so an in-guest firewall (iptables/nftables/pf) should be usable; not explicitly documented.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Build resources: medium: 4 vCPUs, 16 GB RAM ... large: 8 vCPUs, 32 GB RAM",
   "note": "not offered: outside the product's scope; only CPU/RAM worker sizes are documented for Android/iOS/Workflows workers, no GPU option",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": true,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "iOS builder VMs run on Mac mini hosts in an isolated environment. ... macos-tahoe-26.6-xcode-27.1",
   "note": "macOS/iOS builders run on current Mac mini hosts, which are Apple Silicon (arm64); Android/Linux GCE workers (n2/c3d-standard) are x86-64, so arm64 applies to the macOS side only.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "EAS Build/Workflows is a managed cloud service run on Expo's own infrastructure (GCP + Expo's macOS cloud); it cannot be run on your own infrastructure.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://expo.dev/pricing",
   "quote": "EAS Build lets you build app binaries for your project using Expo's cloud service.",
   "note": "not offered: no bring-your-own-cloud deployment documented; the service runs only in Expo's own GCP/macOS infrastructure.",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://expo.dev/trust",
   "quote": "Expo services are primarily hosted on Google Cloud Platform, providing best-in-class physical and logical security.",
   "note": "The Expo SDK / React Native tooling is open source, but EAS Build/Workflows (the cloud build/CI service being modeled) is Expo's proprietary managed SaaS with no published OSI-license source for the service itself.",
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": false,
   "source": "https://expo.dev/trust",
   "quote": "SOC 2 Compliance Expo is committed to enterprise-grade security and has obtained SOC 2 Type 2 attestation.",
   "note": "Trust center lists SOC 2, GDPR/CCPA/Data Privacy Framework, MFA, SSO and audit logging, but does not mention HIPAA eligibility or a BAA offering.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": false,
   "source": "https://expo.dev/privacy",
   "quote": "We may transfer and store your information on servers located outside your resident jurisdiction. ... you consent to the transfer of such data to the United States for processing by us in accordance with this Privacy Policy.",
   "note": "Privacy policy describes transfer of data to the US (covered via the EU-U.S. Data Privacy Framework) rather than offering a choice to keep machines/data in EU regions; no EU region selection is documented for EAS Build/Workflows.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": 2,
   "source": "https://docs.expo.dev/build-reference/limitations/",
   "quote": "Maximum build duration: If your build takes longer to run than the maximum duration allowed for your plan, it will be canceled. See EAS pricing for the build timeout included with each plan.",
   "note": "Build/workflow job timeout is plan-dependent: 45 min on Free, 2 h on Starter/Production/Enterprise (expo.dev/pricing). 2 h is used as the representative paid-plan value.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Android builders run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance. ... Images for each platform have one specific version of Node.js, Yarn, CocoaPods, Xcode, Ruby, Fastlane, and so on. ... you can use npm hooks to install or update any system dependencies with apt-get or brew.",
   "note": "not offered: outside the product's scope. EAS Build/Workflows are per-build compile jobs (a mobile-app CI runner), not general-purpose machines; the build image itself is built from a Docker base image (e.g. 'Docker image: ubuntu:jammy-v20250112') but no page documents users running their own Docker daemon/containers inside a build job. Only apt-get/brew system-dependency hooks and EAS Workflows nested-virtualization workers (for Android Emulators, a separate KVM-based feature) are documented; no docker-in-docker capability is mentioned anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Every build gets its own fresh macOS VM.",
   "note": "Android builds also get 'its own dedicated VM instance' per build; there is no stop/start of a persisted machine for this product — each build/workflow job runs on a brand-new ephemeral VM that is destroyed afterward. The only cross-build persistence is key-based save/restore caching of specific paths (eas/save_cache, eas/restore_cache) and build artifacts, not a persistent disk attached to a machine.",
   "checked": "2026-09-30"
  },
  "custom_image": {
   "value": false,
   "source": "https://docs.expo.dev/eas/json/",
   "quote": "image (string) - Image with build environment . resourceClass (enum: default, medium, large) - The Android-specific resource class that will be used to run this build.",
   "note": "eas.json's `image` field only selects from Expo's fixed named/preset build images (e.g. \"default\", \"latest\", \"ubuntu-22.04-jdk-17-ndk-r26b\") listed on docs.expo.dev/build-reference/infrastructure/; there is no option to supply your own arbitrary Docker/OCI base image. The infrastructure page explains customization is done via version overrides in eas.json or npm hooks running apt-get/brew on top of the fixed image, not by bringing a custom image.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://docs.expo.dev/build-reference/infrastructure/",
   "quote": "Linux runners are hosted in Google Cloud Platform. macOS runners are hosted in our own macOS cloud.",
   "note": "The infrastructure doc enumerates only Linux (Android builds/Workflows) and macOS (iOS builds/Workflows) runner fleets; Windows is not mentioned anywhere on the page or in the EAS Workflows worker size list (linux-* and macos-* only). EAS Build/Workflows is a mobile-app CI product with no Windows worker offering.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://docs.expo.dev/billing/usage-based-pricing/",
   "quote": "To see the current billing period's usage summary, go to Billing > Usage. You will find a usage summary for EAS Build, EAS Update, and other services.",
   "note": "granularity: account-only; cost: yes; Usage monitoring is dashboard-only (web UI). EAS Workflows REST API triggers/checks runs but not billing usage. EAS Insights tracks app usage (MAU, cold starts) not build usage. No GraphQL query documented for usage retrieval.",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [],
 "locations_source": "https://docs.expo.dev/build-reference/infrastructure/",
 "locations_quote": "Linux runners are hosted in Google Cloud Platform. macOS runners are hosted in our own macOS cloud.",
 "locations_checked": "2026-10-01"
}