Skip to main content

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.

Request
  ↓
Host selects a deployment
  ↓
Security: platform protections, deployment protection,
          firewall custom rules, attack challenge mode
  ↓
Routing: redirects, rewrites, middleware
  ↓
CDN cache or static file
  ↓ when the response needs your code
Function
  ↓
Your database, APIs, or Runtime Cache
  1. 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.
  2. 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.
  3. Routing. Redirects return immediately. Rewrites and middleware choose the route that handles the request. See CDN.
  4. Cache and static files. A cached response or a static file from the build is served without invoking a Function. See Caching.
  5. 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.
  6. Observability. Each request gets a request ID, returned in the X-Easel-Id header. 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

TermDefinitionLearn more
ProjectSource code plus its settings, environment variables, domains, security controls, and deployment history.Deployments
DeploymentAn immutable build of one source revision and configuration, with its own URL.Deployments
EnvironmentThe settings a deployment builds and runs with: Preview or Production.Deployments
Preview deploymentA deployment built with Preview settings, usually from a branch or pull request.Git deployments
Production deploymentA deployment built with Production settings from the Production branch or CLI.Deployments
CurrentThe Production deployment your production domains point to.Promote and roll back
StagedA Ready Production deployment that's waiting to be promoted.Promote and roll back
Deployment URLA URL for one deployment. Branch, pull request, and production URLs are aliases that move over time.Deployment URLs
Static fileA build output file served without running your code.Static files
FunctionServer-side code: rendered routes, API handlers, loaders, actions, and webhooks.Functions
RequestOne HTTP exchange that Easel receives.Requests
InvocationA Function execution session. One invocation can serve more than one request.Function runtime
CDN cacheStores complete HTTP responses and is checked before a Function runs.Caching
Runtime CacheStores values your Function code reads and writes. Separate from the CDN cache.Runtime Cache
RedirectA 3xx response that sends the client to another URL.Redirects and rewrites
RewriteServes a different destination while keeping the URL the visitor sees.Redirects and rewrites
Edge locationWhere Easel receives requests and serves cached and static responses.Regions
Function regionWhere your Functions run. Usually farther from the visitor than the edge location.Regions
Request IDThe X-Easel-Id value that ties a response to its logs, trace, and events.Headers

Next steps