Edge
Craft CMS logo

For Craft CMS

Craft CMS,
production-grade and predictable

The premium PHP CMS for design-led teams, on real VMs with S3-compatible asset volumes and a global CDN. Servd-class infrastructure at a fraction of the cost.

# config/filesystems.php — S3 volume

return [

[

'type' => craft\awss3\Fs::class,

'handle' => 'edgeAssets',

'name' => 'Edge Assets',

'settings' => [

'endpoint' => '$EDGE_ENDPOINT',

'bucket' => 'craft-assets',

],

],

];

# Provision and apply

$ edge compute create --plan small ...

$ php craft up

Why Craft teams pick Edge

Pixel & Tonic-recommended hosting characteristics, at agency-friendly prices.

Real PHP, real performance

Dedicated CPU, NVMe storage, OPCache tuned for Yii — the hosting story Pixel & Tonic actually recommend, on infrastructure that doesn't bill per page-view.

S3 asset volumes

Use the official `craftcms/aws-s3` adapter pointing at Edge Storage. Local volumes for dev, S3-backed volumes for production — same Craft setup either way.

Image transforms, two ways

Craft's native transforms work great. For high-traffic sites, point your asset URLs at Edge Image Optimization for AVIF/WebP at the CDN.

Global CDN, zero egress

Front the front-end through the Edge CDN. Logged-in editors hit origin; the world reads from cache. No egress fees on any of it.

MySQL or Postgres

Run on the same VM for cost, separate VMs for scale, or your existing managed provider. Craft is happy with all three.

Project Config + Composer flow

Standard Craft deploy: pull, `composer install`, `php craft up`, restart. Wrap it in a CI step or Envoyer/Forge — both work pointed at an Edge VM.

Reference architecture

How Craft maps to Edge

Standard LEMP stack with S3-backed asset volumes and the global CDN out front. Boring, fast, predictable.

Compute

Runs Craft + Nginx + PHP-FPM on a VM, with MySQL or Postgres

Storage

S3-compatible bucket for asset volumes

CDN

Caches the front-end and asset URLs globally

Image Optimization

On-the-fly variants from Craft asset URLs

DNS

Anycast DNS for the apex, www and any subsite domains

# Twig template — Craft asset → Edge Image URL

<img

src="https://cdn.example.com/{{ asset.path }}?w=1200&fm=webp"

srcset="https://cdn.example.com/{{ asset.path }}?w=800&fm=webp 800w,

https://cdn.example.com/{{ asset.path }}?w=1600&fm=webp 1600w"

alt="{{ asset.title }}"

>

# Or use native transforms

{{ asset.getUrl({ width: 1200, format: 'webp' }) }}

Common questions

Craft 4 or Craft 5?

Both work. Craft 5 (PHP 8.2+) is a clean fit for a fresh Edge VM. The bootstrap script installs Composer, the right PHP version and `php craft up` runs migrations on first boot.

Can I keep using Forge or Envoyer?

Yes — both can target an Edge VM by IP. We provision the box, they handle the deploy pipeline. Or use the Edge CLI to script the same workflow if you'd rather skip the third party.

How does this compare to Servd / Cloudways?

Cheaper, faster, you keep root. The trade-off is a bootstrap script (or Forge/Envoyer) to manage the OS — or our Expert Services team can run it for you.

What about Craft Commerce?

Runs identically — same PHP/MySQL stack, same S3 asset volumes for product imagery. The CDN handles catalogue traffic; checkout falls through to your origin VM.

By Stack

Other stacks on Edge

View all stacks →

Ship Craft on Edge

30-day trial. Bring an existing Craft site or scaffold a new one — agency-friendly pricing all the way up.