Pricing
Plans, what each meter counts, included allowances, and on-demand rates.
Easel has two self-serve plans. Hobby is free within its allowances. Pro is $20 per month and includes $20 of usage. The numbers on this page come from the same catalog as the pricing page.
Plans
- Hobby: free. Allowances are hard limits: when any one runs out, your sites pause until the month resets or you upgrade. Workspace owners get an email as each allowance passes 50%, 75%, and 90%, and again if sites pause.
- Pro: $20 per month, paid upfront, with $20 of included usage. Allowances are higher for Edge Data Transfer, Edge Requests, and Functions. Usage past an allowance doesn't pause your sites: it's charged at on-demand rates, the plan covers the first $20, and the rest is billed at the end of the month. An optional spend budget alerts you or pauses sites at an amount you choose. See Billing.
- Enterprise: custom contracts, volume pricing, and platform SLAs. Contact us.
Unused allowances and included usage don't roll over.
Meters
| Meter | Hobby | Pro | On-demand |
|---|---|---|---|
| Edge Data Transfer | 100 GB / month | 1 TB / month | $0.10–$0.2300 / GB |
| Origin Transfer | 10 GB / month | 10 GB / month | $0.06–$0.4300 / GB |
| Edge Requests | 1M / month | 10M / month | $2.00–$3.20 / 1M |
| Function Duration | 100 GB-hrs / month | 1000 GB-hrs / month | $0.18 / GB-h |
| Function Requests | 100K / month | 1M / month | $0.60 / 1M |
| Cache Read Units | 1M / month | 1M / month | $0.40–$0.6400 / 1M |
| Cache Write Units | 200K / month | 200K / month | $4.00–$6.40 / 1M |
| Build Execution | 100 Standard build min / month | 100 Standard build min / month | $0.0035 / vCPU-min |
| Rate Limiting | 1M / month | 1M / month | $0.50–$0.8000 / 1M |
| WAF Inspected Requests | On-demand | On-demand | $0.80–$1.28 / 1M |
| WAF Inspected Payload | On-demand | On-demand | $0.20–$0.3200 / GB |
| Image Transformations | 5K / month | 5K / month | $0.0500–$0.0812 / 1K |
| Queue API Operations | 1M / month | 1M / month | $0.60 / 1M |
| Workflow Events | 50K / month | 50K / month | $0.02 / 1K |
| Workflow Data Written | 1 GB / month | 1 GB / month | $0.50 / GB |
| Workflow Data Retained | On-demand | On-demand | $0.50 / GB-month |
The On-demand column is a range because rates vary by region. Usage is priced by the edge location that served it, except Origin Transfer from a function, which uses the function's region, and Runtime Cache, which uses the cache's home region. Easel converts regional usage into base-region units before counting it, so work in a higher-priced region uses more of your allowance and costs more past it. Function Requests, Function Duration, Queue API Operations, the Workflow meters and Build Execution cost the same everywhere. See Regional pricing for every region's rates.
| Meter | One unit | Counts when |
|---|---|---|
| Edge Data Transfer | 1 GB sent from the edge to the client | Any response leaves the edge: static, cached, or from a function |
| Origin Transfer | 1 GB fetched from an origin into the edge | The edge fetches from your function or origin. Bytes sent on to the client are Edge Data Transfer |
| Edge Requests | One response | The edge completes a response |
| Function Duration | 1 GB-hour: configured memory × billed duration | A function runs, including work after the response. Recorded once per execution |
| Function Requests | One request into a function | A page, route handler, server action, or similar reaches a function |
| Queue API Operations | One API call, per 4 KiB of each message | A function publishes, receives, acknowledges or extends a message, or a message is delivered to a consumer. A publish with an idempotency key and a delivery to a consumer with maxConcurrency count twice |
| Workflow Events | One event | A workflow run or step changes state: created, started, completed, retried, a sleep or hook begins or ends. A step takes three or more |
| Workflow Data Written | 1 GB stored | A run stores its inputs, outputs, errors, hook payloads and event log, or writes to a stream |
| Workflow Data Retained | 1 GB kept for a month | Recorded when a run finishes: what it stored × your plan's retention (Pro: 7 days). Hobby isn't charged |
| Cache Read Units | 8 KB read, rounded up per read | ISR returns data, or Runtime Cache returns a hit. Misses are free |
| Cache Write Units | 8 KB written, rounded up per write | ISR or Runtime Cache stores data. Deletes, tag expiry, and evictions are free |
| Build Execution | One vCPU-minute | The build machine is running. Queue time isn't counted |
| Rate Limiting | One allowed request | A request matches a rate-limit rule and is allowed. Limited (429) requests don't count |
| WAF Inspected Requests | One inspected request | A request goes through WAF inspection |
| WAF Inspected Payload | 1 GB of request body inspected | WAF inspects a request body. Only the inspected prefix counts, never response bodies |
| Image Transformations | One transformation | The optimized image is a cache MISS or STALE. A cache HIT isn't counted |
Observability isn't metered today.
Functions
Function Requests count requests into your app, not underlying executions. A function with in-function concurrency can serve overlapping requests in one execution, so request count doesn't map one-to-one to executions or instances. Static and cached responses that never reach a function create no Function Requests, and time spent queued before a cold start isn't Function Duration. See Functions.
Builds
Both plans include 100 build minutes on the Standard (2 vCPU) machine, shown as vCPU-minutes. An Enhanced (4 vCPU) build uses the allowance twice as fast. Easel checks the remaining allowance before starting a Hobby build. On Pro, usage only blocks builds when a spend budget pauses the workspace. See Build configuration.
Image transformations
Rates are quoted per 1,000 transformations. Easel bills no separate image cache reads or writes, and serving an optimized image from cache uses no Cache Read or Write Units. See Image Optimization.
Security
Rate Limiting counts requests a rate limit rule allowed. Request-body WAF inspection isn't available yet, so its meters don't accrue usage today. Other custom firewall rules, IP rules, and attack challenge mode aren't billed through these meters. See Firewall.
How your app affects usage
- Cache hit rate. A response served from the CDN cache counts Edge Requests and Edge Data Transfer, but no Function Requests, Function Duration, or Origin Transfer. Give immutable assets long-lived cache headers, cache eligible dynamic responses at the CDN, and use Runtime Cache for repeated data or computation.
- Function duration. You pay for configured memory for as long as a function runs, including work after the response, until it finishes or hits its limit. Keep that work bounded and move long jobs to Queues.
- Builds. Every build uses minutes, including Preview builds. To skip builds a change doesn't need, use Skip unaffected deployments or an Ignored build step. To stop some branches from building previews, list them under Ignored preview branches in Project settings → Git → Environments.
- Preview deployments. Previews use the same meters as Production, so high-volume branch workflows add up.
The Usage page shows usage by project, product, and region. See Limits for technical ceilings.