Published 2026-09-21 · Tested 2026-08-19
Expo
B-Expo received 11 PASS votes and passed 4 of five agent surface checks. The clearest finding came from the find the exact limits task.
Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Expo’s public documentation independently and attempted five first-hour developer jobs: create and run an app, find the exact limits, recover from a version mismatch, verify an EAS webhook, use an Expo SDK module.
No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check. Preflight substitutions: T3: An Expo Go version mismatch replaced HTTP 429 because it is a common documented first-hour error.
Freshness
How rechecks work- Category
- Cloud & developer platforms
- Tested
- Quotes verified
- Surface rechecked
No change since the test.
5 of 5 quoted passages still appear on the live pages.
82.5% · 66/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts
Agent surface checks · 40/50
The Reading Test
| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
|---|---|---|---|---|
| Create and run an app | PARTIAL | PARTIAL | PASS | PARTIAL |
| Find the exact limits | PASS | PARTIAL | PARTIAL | PARTIAL |
| Recover from a version mismatch | PASS | PASS | PASS | PASS |
| Verify an EAS webhook | PASS | PASS | PASS | PASS |
| Use an Expo SDK module | PASS | PASS | PASS | PASS |
docs platform: Custom Next.js (unscored) · verified 2026-08-19
What to fix first
These 3 fixes could add up to 14 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works
- 1 +10 points llms-full.txt check failed
Found: The URL redirects to llms.txt and does not provide a separate full corpus.
Fix: Publish llms-full.txt at the docs root with the full text of every docs page in one plain-text file.
- 2
Found: The default template is SDK 57, but App Store Expo Go stops at SDK 54. In the panel's reading, the setup and troubleshooting pages disagree on paid Apple membership.
Fix: On the setup page, state which SDK the store Expo Go builds support, and add the sign.expo.dev iPhone route.
Evidence: docs.expo.dev/
get-started/ set-up-your-environment (opens in a new tab) - 3
Found: The billing docs defer per-plan MAU, bandwidth, storage, and concurrency numbers to expo.dev/pricing, outside the docs site.
Fix: Add a per-plan table of MAU, bandwidth, storage, and concurrency limits to the billing plans page.
Evidence: docs.expo.dev/
billing/ usage-based-pricing (opens in a new tab)
What the docs get right
- Recover from a version mismatch: 3 PASS votes. The page gives platform-specific installation, restart, diagnosis, upgrade, and development-build options.
- Verify an EAS webhook: 3 PASS votes. The webhook page documents creation, POST reception, retries, raw-text handling, and safe signature comparison.
- 4 of 5 agent surface checks. Present: llms.txt, markdown mirrors, an MCP server, docs AI. Missing: llms-full.txt.
Create and run an app
PARTIALPARTIAL consensus from 1 PASS, 2 PARTIAL.
The default-project command selects SDK 57, but the setup path sends learners to store Expo Go, documented as SDK 54. The three Get Started pages give a complete create-start-open path, but the physical-iPhone branch of the environment page demands a paid Apple Developer Program membership while the troubleshooting page says sign.expo.dev needs none, and the default template is SDK 57 while store Expo Go is SDK 54. Three sequential pages (create a project, set up environment, start developing) give an unambiguous path from zero to running on device or simulator.
Find the exact limits
PARTIALPARTIAL consensus from 1 PASS, 2 PARTIAL.
The pricing Markdown lists every requested quota and overage rate, while the billing FAQ defines reset dates without conflicting values. No page under docs.expo.dev states per-plan MAU, bandwidth, storage, or concurrency counts; the numbers exist only on the marketing site at expo.dev/pricing and its pricing.md mirror. One panelist read the two Production examples as conflicting build credits of $55 and $225. The page figures also fit one $225 credit, with 25 builds using $55 of it. Build credits, MAUs, bandwidth, and overage rates exist in the billing docs but storage limits per plan, exact concurrency, and Enterprise details are absent; the plans page defers all exact numbers to the external marketing site at expo.dev/pricing.
Recover from a version mismatch
PASSPASS consensus from 3 PASS.
The page gives platform-specific installation, restart, diagnosis, upgrade, and development-build options. A dedicated page matches the exact error string, explains the one-SDK-per-Expo-Go-build cause, branches the fix by iPhone, Android device, emulator, and simulator, and adds package.json, sdkVersion, expo-doctor, and expo install --fix follow-up checks. A dedicated page explains the error, its cause, and gives per-platform recovery instructions for every device type plus an upgrade path.
Verify an EAS webhook
PASSPASS consensus from 3 PASS.
The webhook page documents creation, POST reception, retries, raw-text handling, and safe signature comparison. One page covers eas webhook:create with its --event, --url, and --secret flags, the 16-character secret minimum, retry behavior outside HTTP 200-399, a runnable Express verification server, an ngrok tip for local receipt, and full build and submit payload examples; the prose omits the sha1= prefix that the sample code compares against. The webhooks page documents creation, payload structure, the expo-signature header format, and provides a complete Express server that performs HMAC-SHA1 verification with timing-safe comparison.
Use an Expo SDK module
PASSPASS consensus from 3 PASS.
The page's example displays modelName, and the API reference defines osName and osVersion as string | null. The SDK reference gives the npx expo install expo-device command, the namespace import, a working render example using Device.modelName, and declares Device.modelName, Device.osName, and Device.osVersion as string | null with per-platform sample values. Installation command, import path, TypeScript usage example, and full API reference for all constants and methods are on a single page.
The receipt
Each plan has a number of monthly active users and global edge bandwidth included as part of the subscription. These differ for each plan. For the most updated numbers, see our pricing page.
No page under docs.expo.dev states per-plan MAU, bandwidth, storage, or concurrency counts; the numbers exist only on the marketing site at expo.dev/pricing and its pricing.md mirror. One panelist read the two Production examples as conflicting build credits of $55 and $225. The page figures also fit one $225 credit, with 25 builds using $55 of it.
Agent surface notes
Initialize returned a valid OAuth-protected MCP authentication challenge.
The live docs expose a public Search or Ask AI control.
Show the score
Paste this into a readme:
[](https://docsforagents.com/reports/expo-docs-ai-agent-readiness/) Method note
This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 2 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-19.
Put another docs site through the battery.
Nominate a docs site