Expo EAS Hosting Deployments
Deploy Expo websites and API routes while configuring secrets, domains, and the edge runtime.
The evidence clearly discloses that EAS Hosting is paid, recommends keeping secrets server-side, forbids exposing API keys to clients, and calls for input validation and error handling. However, deployment, production release, environment-secret creation, and custom-domain changes require no explicit user confirmation and provide no data-flow disclosure, permission scoping, rollback plan, or recovery path. The wildcard CORS example, incomplete authentication example, and proxy pattern that interpolates user input into a third-party URL warrant deductions.
The document covers export, deployment, API routes, environment variables, runtime limits, and local curl checks, so the main path is coherent. However, it contains no committed tests or reproducible execution evidence; abnormal inputs, deployment failures, authentication failures, and rollback feedback are thin, and command/platform behavior is not verified within the supplied files. Static calibration therefore caps this below 10.
The audience and scenarios are reasonably clear, with explicit separation between websites/API routes, EAS Hosting, and native builds/store releases, plus several cases where API routes are not appropriate. Trigger conditions, input/output contracts, and non-fit boundaries remain coarse; Chinese-language support is not addressed, nor is reachability of EAS, Cloudflare, or related services from mainland-China networks.
The skill is readable and layered across scenarios, examples, runtime constraints, and deployment. It declares version 1.0.0 and MIT licensing, while repository-level documentation provides general installation and update guidance. It lacks skill-specific changelog information, a named maintenance owner, a precise update path, a real FAQ, and systematic troubleshooting; the custom-domain section is especially underspecified.
The examples can directly support common API-route authoring and EAS Hosting deployment tasks, including TypeScript, curl, CLI, and workflow snippets. Production use still requires substantial review and additions for authentication, validation, secret rotation, database connectivity, restricted CORS, and upstream error handling; some examples forward upstream responses without checking failure status. Static review cannot establish end-to-end completion, so the score is capped at 7 or below.
The document includes limited traceability through Expo pricing, workflow-syntax references, and official documentation links in the repository README. The selected skill has no tests, CI coverage, compatibility matrix, or third-party execution evidence, so the assessment relies mainly on author-provided instructions and static inspection.
- Deployment and production release create external service state and may incur charges; obtain explicit confirmation before eas deploy, eas env:create, or custom-domain changes, and establish rollback/version recovery.
- Do not adopt Access-Control-Allow-Origin: * unchanged; restrict origins according to the real clients and authentication model.
- The authentication example only checks for an Authorization header rather than validating a token; the proxy example also needs input validation/encoding and upstream status checks.
- EAS Hosting depends on Expo/EAS and Cloudflare-managed services, and the supplied files do not establish stable reachability from mainland-China networks.
What does this skill do, and when should you use it?
This skill is for developers using Expo and Expo Router who need to deploy web apps and API routes to EAS Hosting. It covers web export, preview and production deployments, environment secrets, custom domains, and Cloudflare Workers runtime constraints. It also explains how to author +api.ts routes, including HTTP methods, request handling, CORS, and error handling. EAS Hosting is a paid service, while web export, API-route authoring, and self-hosting the exported server output are free and open source.
Shows how to create +api.ts routes in the app directory, read query parameters, headers, and JSON bodies, and return Response objects; explains server-side secrets through process.env, CORS headers, and error handling; exports the web bundle with npx expo export -p web and deploys previews or production releases with eas deploy; configures production variables with eas env:create and custom domains through eas.json or the Expo dashboard; documents unavailable or limited Node.js APIs in Cloudflare Workers and recommends fetch, Web Crypto, and cloud database alternatives.
- An Expo web developer needs to deploy a website and its Expo Router API routes together on EAS Hosting.
- A developer needs to keep OpenAI, Stripe, or other third-party API keys on the server while proxying requests.
- A team needs webhook endpoints, server-side validation, database operations, or rate limiting.
- A team wants preview URLs for pull requests or automatic production deployment from the main branch.
- A project maintainer needs to configure EAS Hosting secrets and a custom domain.
What are this skill's strengths and limitations?
- Covers the end-to-end workflow for websites, Expo Router API routes, secrets, domains, and deployment automation.
- Clearly documents Cloudflare Workers limitations and Web API alternatives.
- Includes copyable TypeScript, curl, EAS CLI, and workflow YAML examples.
- Deploys API routes together with the web bundle and supports preview and production environments.
- EAS Hosting is paid, and production deployments consume plan request and bandwidth allowances.
- Cloudflare Workers has no Node.js filesystem or native Node modules, with a 30-second limit for CPU-intensive work.
- It does not cover native builds or app-store releases; those belong to the eas-app-stores skill.
- The source provides no test suite or platform testing results.
How do you install this skill?
The repository is a collection of 23 skills. Install the Expo skills with Skills CLI using npx skills@latest add expo/skills --skill '*', then restart or refresh the agent session. For Claude Code, run claude plugin install expo@claude-plugins-official; for Codex, run codex plugin add expo@openai-curated. The source does not document a command that installs only eas-hosting.
How do you use this skill?
After installation, ask for a concrete Expo hosting task, such as: “Deploy this Expo website to EAS Hosting and configure production secrets and a custom domain,” or “Create an Expo Router API route that accepts a POST JSON body.” The documented deployment commands are npx expo export -p web, npx eas-cli@latest deploy for a preview, and npx eas-cli@latest deploy --prod for production.
How does this skill compare with similar options?
Compared with EAS Hosting, self-hosting the exported server output avoids using the paid hosting service but requires managing hosting independently. For real-time updates, the source points to WebSockets or services such as Supabase Realtime; for simple CRUD, it names Firebase, Supabase, and Convex as alternatives.