Skip to content

For Statamic

Statamic, served without the surprises

Edit on a small VM, generate the site static and serve it straight from a bucket. Assets live in S3-compatible storage and every page caches in 988 locations, with no database to babysit.

Free to sign up. No egress fees on any product.

Why Statamic on Edge

Flat-file content, flat-fee infrastructure

No database to provision, no per-visit caps and no egress fees between your content and your readers.
  • Flat-file, no database drama

    Content lives in the repo as Markdown and YAML. Nothing to snapshot or scale, so the VM does one job well.
  • Assets straight to storage

    Point an asset container at an S3 disk on Edge Storage. Uploads, focal-point crops and downloads share one bucket.
  • Image transforms at the CDN

    Keep Glide tags where you like them, or add ?width= and format=auto to any asset URL for AVIF and WebP at the edge.
  • Global CDN, zero egress

    Public pages cache in 988 locations. The Control Panel stays on your VM, out of the cache.
  • Static output, no origin

    Run php please ssg:generate, sync the output to a bucket and serve it from the CDN. Ideal for sites that change daily.
  • Laravel inside

    Forge, Envoyer and Kamal all target an Edge VM. The Edge CLI and agent API cover the VM, DNS and CDN.

Two ways to run it

Dynamic, static, or both

Pick per site. Both share the same asset bucket and image pipeline, so switching later costs nothing.
  • Static from a bucketGenerate with the SSG addon in CI, sync to Edge Storage, serve from the CDN. No origin VM in the request path.
  • Dynamic on a VMForms, member areas or live search? Run Statamic under Nginx and PHP-FPM like any Laravel app.
  • Eloquent when you need itSwitch to the Eloquent driver and point Statamic at MySQL or Postgres, on the same VM or its own.
  • Glide or edge transformsGlide keeps working. Edge transforms skip the render step and cache every variant worldwide.

Reference architecture

How Statamic maps to Edge

Editors work in the Control Panel on a small VM. Builds land in a bucket, and visitors only ever touch the CDN.
  • Compute

    Runs Statamic under Nginx and PHP-FPM, and builds the static output.

  • Storage

    Holds asset containers, Glide variants and the generated site.

  • CDN

    Serves pages straight from the bucket and caches them worldwide.

  • Image optimisation

    A drop-in alternative to Glide URLs, with on-the-fly transforms.

  • DNS

    Anycast DNS for the apex, www and preview branches.

  • Shield

    Scores Statamic form submissions for spam. No CAPTCHA.

  • Assist

    Turns your flat-file content into answers, one tag in the layout.

Deploy

Statamic on Edge in five steps

The dynamic VM and the static build share one setup. Skip step one if you only build in CI.
  1. 01

    Create the VM and the buckets

    The lemp script installs Nginx and PHP 8.3. Deploy Statamic to it as you would any Laravel app.

    shell
    $ edge compute create --name statamic --size s-2vcpu-4gb \
        --image ubuntu-24 --region london --script lemp
    
    $ edge storage create acme-assets
    $ edge storage create acme-site
  2. 02

    Add an S3 disk for assets

    Install league/flysystem-aws-s3-v3, add the disk, then set disk: assets in content/assets/assets.yaml.

    config/filesystems.php
    'assets' => [
        'driver' => 's3',
        'key' => env('EDGE_KEY'),
        'secret' => env('EDGE_SECRET'),
        'region' => 'us-east-1',
        'bucket' => 'acme-assets',
        'endpoint' => 'https://storage.edge.network',
        'use_path_style_endpoint' => true,
        'url' => 'https://assets.acme.studio',
    ],
  3. 03

    Generate and sync the static site

    Run this in CI on every push, or on the VM after editors publish.

    shell
    $ composer require statamic/ssg
    $ php please ssg:generate
    $ edge storage sync --delete storage/app/static acme-site/
  4. 04

    Serve both buckets through the CDN

    The CDN serves index.html for directory paths, so /about/ just works. Image transforms go on the asset domain.

    shell
    $ edge cdn create --name acme-studio
    $ edge cdn domains add cdn-a1b2c3 --domain acme.studio \
        --origin-type storage --storage-bucket acme-site
    $ edge cdn domains add cdn-a1b2c3 \
        --domain assets.acme.studio --jit-image \
        --origin-type storage --storage-bucket acme-assets
  5. 05

    Resize images from Antlers

    Append transform parameters to any asset URL. Glide tags keep working if you prefer them.

    resources/views/partials/hero.antlers.html
    <img
      src="{{ hero_image:url }}?width=1200&format=auto"
      srcset="{{ hero_image:url }}?width=800&format=auto 800w,
              {{ hero_image:url }}?width=1600&format=auto 1600w"
      alt="{{ hero_image:alt }}"
    >

Prefer to hand it off? Give the job to your AI agent or have our engineers do it.

What it costs

A content site for the price of a VM

One small VM for editors and builds. Visitors are served from storage through the CDN, so traffic barely moves the bill.
  • No database server to pay for
  • Traffic growth only moves the CDN line
  • Build in CI and drop the VM if you like
  • Hourly billing with optional hard caps
See compute pricing

Estimated monthly bill on Edge

Marketing site · ~200k page views/mo · 25 GB of assets and HTML

USD
  • Compute$19.24Standard VM · 2 vCPU · 4 GiB · Control Panel + builds
  • CDN$0.502.5M requests: 500k free, then 2M × $0.25 per million
  • Storage$0.3025 GB across both buckets: 5 GB free, then 20 GB × $0.015
  • DNS$0.00Zone, www and preview records
  • Egress$0.00
Total$20.04

FAQ

Statamic on Edge, answered

Something else? Ask an engineer.
Static, dynamic, or both?
Either. For a content site, run php please ssg:generate in CI, sync the output to Edge Storage and serve it from the CDN with no origin VM. For forms or member areas, run Statamic on a small VM like any Laravel app.
How do asset containers work?
Define an s3 disk in config/filesystems.php that points at Edge Storage and reference it from the container. Uploads, focal-point crops and Glide variants all land in the bucket.
What about Statamic Pro and the Eloquent driver?
Both work. Pro features such as multi-site, users, forms and the REST and GraphQL APIs don't care where you host. With Eloquent, point Statamic at MySQL or Postgres on the same VM or a separate one.
How do content updates get deployed?
Two patterns. Edit in the Control Panel on the VM, then generate and sync. Or commit content as code and let CI build and ship. The agent API can wire up either.

Ship your Statamic site on Edge

Free to sign up. Bring an existing site or start fresh: flat-file or Eloquent, static or dynamic.

Free tiers hard-cap. Nothing bills until you add a card.