For Strapi
Strapi on Edge,
the headless API stack
Self-host the leading open-source headless CMS on real VMs. S3-compatible media storage, global CDN for the API and uploads, zero egress fees on the way to your front-end.
# config/plugins.js — S3 upload provider
module.exports = ({ env }) => ({
upload: {
config: {
provider: 'aws-s3',
providerOptions: {
endpoint: 'https://storage.edge.run',
params: { Bucket: env('EDGE_BUCKET') },
},
},
},
})
# Provision the VM
$ edge compute create --plan small ...
Why Strapi teams pick Edge
A real Node host, a global delivery network, and a media bucket — the three things every Strapi production setup needs.
Node.js + your database, your way
Strapi runs on a small VM with Postgres, MySQL, MariaDB or SQLite. Pick the DB you already operate; Edge stays out of the way.
S3 upload provider
Use the official `@strapi/provider-upload-aws-s3` plugin pointing at Edge Storage. Media library uploads land in a durable, CDN-fronted bucket.
Image transforms at the edge
Skip Strapi's built-in image processing for high-volume use cases — let Edge Image Optimization generate responsive variants from a URL.
Global CDN for the API
Front the REST and GraphQL endpoints through the Edge CDN. Cache public content responses, fall through for authenticated requests.
Pairs with your front-end
Built to feed Next.js, Nuxt, SvelteKit, Astro and mobile apps. Run the front-end on its own Edge VM or static-host it from Edge Storage.
Agent-deployable
Tell the Edge agentic API to deploy a Strapi instance to a domain — VM, DNS, CDN and SSL all wired up.
Reference architecture
How Strapi maps to Edge
Strapi as the API origin, your front-end (Next.js / Nuxt / Svelte) on a separate VM or in Storage, both fronted by the CDN.
Runs Strapi (Node.js) + your database on a VM
S3-compatible upload provider for the media library
Caches the public REST/GraphQL API and uploaded media
Optional: replace Strapi image processing with edge transforms
Anycast DNS for `cms.example.com` and `app.example.com`
# Next.js front-end → Strapi API on Edge
const posts = await fetch(
'https://cms.example.com/api/posts',
{ next: { revalidate: 60 } }
).then(r => r.json())
# Image URL via Edge Image Optimization
<img src=`https://cdn.example.com/${post.cover.url}?w=1200&fm=webp` />
Common questions
{faq.q}
{faq.a}
Ship Strapi on Edge
30-day trial. Bring an existing Strapi instance or scaffold one fresh.