eas-hosting
Deploy Expo websites and Expo Router API routes to EAS Hosting - export the web bundle, run eas deploy for production and PR preview URLs, manage environment…
Skill by expo
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/expo-eas-hosting
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, backend, devops, cloud, ci-cd, cloud-management
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/eas-hosting
What's inside
- Skill name
eas-hosting- Description
- Deploy Expo websites and Expo Router API routes to EAS Hosting - export the web bundle, run eas deploy for production and PR preview URLs, manage environment secrets and custom domains, and work within the Cloudflare Workers runtime. Also covers authoring API routes (+api.ts handlers, HTTP methods, request handling, CORS). Use when deploying an Expo web app or API routes, setting up EAS Hosting, or configuring hosting environments and domains. Not for native builds or store releases - use the eas-app-stores skill for those.
- License
- MIT
- Instructions
- 426 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# EAS Hosting
> **EAS service - costs apply.** EAS Hosting is a paid Expo Application Services product with free-tier limits; production deploys use your plan's request and bandwidth allowance. See https://expo.dev/pricing. Authoring API routes and exporting the web bundle are free and open source, and you can self-host the exported server output instead of EAS Hosting.
EAS Hosting deploys your Expo **web app and API routes** to Expo's managed edge (Cloudflare Workers). Export the web bundle with `npx expo export -p web` and ship it with `eas deploy` - the same command deploys any Expo Router API routes bundled alongside it. This skill covers deploying a website, authoring API routes, and the hosting runtime; see the Deployment section below for the deploy workflow.
## When to Use API Routes
Use API routes when you need:
- **Server-side secrets** — API keys, database credentials, or tokens that must never reach the client
- **Database operations** — Direct database queries that shouldn't be exposed
- **Third-party API proxies** — Hide API keys when calling external services (OpenAI, Stripe, etc.)
- **Server-side validation** — Validate data before database writes
- **Webhook endpoints** — Receive callbacks from services like Stripe or GitHub
- **Rate limiting** — Control access at the server level
- **Heavy computation** — Offload processing that would be slow on mobile
## When NOT to Use API Routes
Avoid API routes when:
- **Data is already public** — Use direct fetch to public APIs instead
- **No secrets required** — Static data or client-safe operations
- **Real-time updates needed** — Use WebSockets or services like Supabase Realtime
- **Simple CRUD** — Consider Firebase, Supabase, or Convex for managed backends
- **File uploads** — Use direct-to-storage uploads (S3 presigned URLs, Cloudflare R2)
- **Authentication only** — Use Clerk, Auth0, or Firebase Auth instead
## File Structure
API routes live in the `app` directory with `+api.ts` suffix:
```
app/
api/
hello+api.ts → GET /api/hello
users+api.ts → /api/users
users/[id]+api.ts → /api/users/:id
(tabs)/
index.tsx
```
## Basic API Route
```ts
// app/api/hello+api.ts
export function GET(request: Request) {
return Response.json({ message: "Hello from Expo!" });
}
```
## HTTP Methods
Export named functions for each HTTP method:
```ts
// app/api/items+api.ts
export function GET(request: Request) {
return Response.json({ items: [] });
}
export async function POST(request: Request) {
const body = await request.json();
return Response.json({ created: body }, { status: 201 });
}
export async function PUT(request: Request) {
const body = await request.json();
return Response.json({ updated: body });
}
export async function DELETE(request: Request) {
return new Response(null, { status: 204 });
}
```
## Dynamic Routes
```ts
// app/api/users/[id]+api.ts
export function GET(request: Request, { id }: { id: string }) {
return Response.json({ userId: id });
}
```
## Request Handling
### Query Parameters
```ts
export function GET(request: Request) {
const url = new URL(request.url);
const page = url.searchParams.get("page") ?? "1";
const limit = url.searchParams.get("limit") ?? "10";
return Response.json({ page, limit });
}
```
### Headers
```ts
export function GET(request: Request) {
const auth = request.headers.get("Authorization");
if (!auth) {
return Response.json({ error: "Unauthorized" }, { status: 401 });
}
return Response.json({ authenticated: true });
}
```
### JSON Body
```ts
export async function POST(request: Request) {
const { email, password } = await request.json();From expo/skills, MIT.
More from expo/skills
- 0.842score
eas-update-insights
expo
Check the health of published EAS Update: crash rates, install/launch counts, unique users, payload size, and the split between embedded and OTA users per…
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
eas-simulator
expo
Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-app-clip
expo
Add an iOS App Clip target to an Expo app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-web-to-native
expo
Migrate an existing web React app to a native iOS/Android app with Expo.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-ui
expo
Build native UI with the @expo/ui package: real SwiftUI on iOS and Jetpack Compose on Android.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-module
expo
Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript).
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-examples
expo
Expo's official example projects - the expo/examples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLite, Skia…
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-design-system
expo
Build and maintain a design system inside an Expo app - a reusable theme of design tokens (color, spacing, typography, radius, shadow, motion), reusable…
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-data-fetching
expo
Use when implementing or debugging ANY network request, API call, or data fetching.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-brownfield
expo
Integrate Expo and React Native into an existing native iOS or Android app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
eas-workflows
expo
Helps understand and write EAS workflow YAML files for Expo projects.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
eas-observe
expo
Use for anything related to EAS Observe - adding `expo-observe` to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive and…
SkillAFreshness: A★ 3KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 3,006
- Forks
- 197
- Open issues
- 22
- Last commit (this folder)
- Oct 22, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/expo/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from expo
- 0.842score
expo-module
expo
Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript).
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-examples
expo
Expo's official example projects - the expo/examples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLite, Skia…
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-app-clip
expo
Add an iOS App Clip target to an Expo app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-ui
expo
Build native UI with the @expo/ui package: real SwiftUI on iOS and Jetpack Compose on Android.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-web-to-native
expo
Migrate an existing web React app to a native iOS/Android app with Expo.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
expo-design-system
expo
Build and maintain a design system inside an Expo app - a reusable theme of design tokens (color, spacing, typography, radius, shadow, motion), reusable…
SkillAFreshness: A★ 3KClaude Code +9
Cite this page
eas-hosting skill. Agent Mart. https://agentmart.dev/skills/expo-eas-hosting (last updated 2026-10-24)