EAS Hosting is a faster, simpler way to deploy your app and API together
Key Points
- expo-server runtime API
- Expo Router middleware support
- workerd now supports core Node modules
Summary
EAS Hosting now bundles a server-side runtime and platform improvements to make deploying full‑stack Expo apps and APIs fast and practical. Key additions in Expo SDK 54 include the new expo-server runtime API (task scheduling, StatusError, origin(), environment()), experimental Expo Router middleware support, app.json header configuration integration with Hosting, and improved Cloudflare workerd compatibility with common Node.js modules. Deployments are faster and more reliable—average deployments take under a minute and free‑tier limits were relaxed.
Key Points
- expo-server: new runtime API (replaces @expo/server) providing deferTask, StatusError, origin(), environment(), and adapters for multiple runtimes—use it for task scheduling and server utilities.
- Expo Router middleware: experimental middleware support (middleware.ts) that can modify requests/responses and integrate with expo-server APIs like setResponseHeaders.
- app.json headers: configure default response headers in expo-router config that EAS Hosting picks up on export.
- Cloudflare workerd: expanded Node.js compatibility (node:http, node:https, node:http2, node:tls, node:dns, node:crypto, node:fs with in-memory FS), reducing need to swap Node packages.
- Reliability & performance: Hosting serves millions of weekly requests, thousands of daily worker deployments; average deployment creation <1 minute; asset/deployment limits relaxed for Free tier.
- Roadmap signals: upcoming blob storage, namespaced/KV-like storage, Server Loader/React Server Functions, RSC and SSR work—all enabled by expo-server and EAS Hosting.
Developer notes
- Upgrade to Expo SDK 54 to use expo-server and middleware features.
- Replace imports from @expo/server with expo-server and adopt deferTask/StatusError patterns for background work and error responses.
- Add middleware.ts for cross-cutting headers/auth and use app.json headers to set defaults that Hosting will honor.
- Test third‑party modules on workerd; many Node packages now run without changes but verify networking/FS behavior (FS is in-memory).
- Expect faster deployments; monitor logs and grouped crash reports via the Console API integration.
Links
- See Expo Router API Routes and expo-server docs for API details and examples.