How Easel works
What Easel deploys, how a request travels through the platform, and the terms used throughout the docs.
Easel builds your application from Git or the CLI, serves static output from its delivery network, runs server-side code in Functions, protects incoming traffic, and records every request.
What you can deploy
Easel runs static sites, client-rendered apps, and full-stack JavaScript frameworks, including Next.js, TanStack Start, Nuxt, React Router, SvelteKit, and Vite. See Frameworks.
A build can produce static files, server-rendered routes and API handlers, middleware, cacheable responses, and image optimization requests. Easel maps each one to the right part of the platform.
The life of a request
Every request passes through the same layers. Most can finish before your code runs.
- Host. The hostname picks the deployment: a deployment URL picks one deployment, a branch URL picks the latest Ready Preview, and a production domain picks the Current deployment. See Deployment URLs.
- Security. Easel's platform protections run first, then deployment protection, your Firewall custom rules, and attack challenge mode. A block, challenge, or sign-in prompt ends the request here. See Security.
- Routing. Redirects return immediately. Rewrites and middleware choose the route that handles the request. See CDN.
- Cache and static files. A cached response or a static file from the build is served without invoking a Function. See Caching.
- Function. Dynamic routes run in a Function in Easel's Function region. One Function instance can handle overlapping requests, so keep shared state in a database or Runtime Cache, not in memory or on local disk. See Functions.
- Observability. Each request gets a request ID, returned in the
X-Easel-Idheader. Use it to find the request's logs, trace, cache decision, and security events. See Observability.
Deployment workflow
Every build creates an immutable deployment with its own URL. Pushes to your Production branch create Production deployments, and other branches create Preview deployments with stable branch and pull request URLs.
Production domains point to the Current deployment. Promoting or rolling back changes which deployment is Current without rebuilding. Changing code, build settings, or environment variables needs a new deployment. See Deployments and Promote and roll back.
What Easel manages and what you manage
Easel runs builds, deployments, static delivery, HTTP caching, Functions, domains and TLS, platform protections, and request telemetry. You own your application code, authentication and authorization, data, external services, and the credentials you give your app. See Security for the full split.
Concepts
| Term | Definition | Learn more |
|---|---|---|
| Project | Source code plus its settings, environment variables, domains, security controls, and deployment history. | Deployments |
| Deployment | An immutable build of one source revision and configuration, with its own URL. | Deployments |
| Environment | The settings a deployment builds and runs with: Preview or Production. | Deployments |
| Preview deployment | A deployment built with Preview settings, usually from a branch or pull request. | Git deployments |
| Production deployment | A deployment built with Production settings from the Production branch or CLI. | Deployments |
| Current | The Production deployment your production domains point to. | Promote and roll back |
| Staged | A Ready Production deployment that's waiting to be promoted. | Promote and roll back |
| Deployment URL | A URL for one deployment. Branch, pull request, and production URLs are aliases that move over time. | Deployment URLs |
| Static file | A build output file served without running your code. | Static files |
| Function | Server-side code: rendered routes, API handlers, loaders, actions, and webhooks. | Functions |
| Request | One HTTP exchange that Easel receives. | Requests |
| Invocation | A Function execution session. One invocation can serve more than one request. | Function runtime |
| CDN cache | Stores complete HTTP responses and is checked before a Function runs. | Caching |
| Runtime Cache | Stores values your Function code reads and writes. Separate from the CDN cache. | Runtime Cache |
| Redirect | A 3xx response that sends the client to another URL. | Redirects and rewrites |
| Rewrite | Serves a different destination while keeping the URL the visitor sees. | Redirects and rewrites |
| Edge location | Where Easel receives requests and serves cached and static responses. | Regions |
| Function region | Where your Functions run. Usually farther from the visitor than the edge location. | Regions |
| Request ID | The X-Easel-Id value that ties a response to its logs, trace, and events. | Headers |
Next steps
- Getting started: deploy your first project.
- Frameworks: framework-specific behavior.
- Deployments: how builds, environments, and releases fit together.