Skip to content
← All posts

Statamic at Scale: My Talk at Laravel Live DK 2024

I presented Statamic at Scale at Laravel Live Denmark 2024 together with the Statamic team. 1.74 billion requests per month, 90,000 requests per second during elections, and 40+ custom addons. Here is the story.

· 7 min read · Sylvester Damgaard
Statamic at Scale: My Talk at Laravel Live DK 2024

Last week I stood on stage at Laravel Live Denmark 2024 and presented "Statamic at Scale: How and Why TV2 Regions Uses the Laravel Based CMS." It was the first Laravel conference in the Nordic countries, held at Werkstatt on Refshaleøen in Copenhagen with over 350 attendees. I co-presented with the Statamic team.

I'd wanted to give this talk for a while. At TV2 Regionerne, I built something that most people wouldn't expect from a flat-file CMS: a platform serving eight regional news stations, handling billions of requests per month, and surviving election night traffic spikes that most setups can't handle.

Sylvester presenting Statamic at Scale at Laravel Live Denmark 2024
On stage at Laravel Live Denmark 2024 presenting Statamic at Scale.

The numbers

I opened with the raw traffic data. In the 30 days before the talk:

  • 1.74 billion requests

  • 266 TB bandwidth

Those are normal numbers. The interesting ones come from peak events. During the 2021 regional election, on election day alone:

  • 1 million unique visitors

  • 3 billion requests

  • 120 TB data transfer

  • Peak traffic in a 4-hour window as final results arrived: 1.2 billion requests, 50 TB data, ~90,000 requests per second

These numbers got the reaction I expected. People don't associate Statamic with this kind of scale. That was the point.

The infrastructure

The stack is straightforward:

  • Kubernetes via Scannet KaaS

  • Fastly as the CDN and asset cache

  • S3 storage on a self-hosted Ceph cluster

No exotic technology. No custom load balancers. Kubernetes for orchestration, Fastly for edge caching, Ceph for storage. The magic is in the caching strategy and the Statamic addon architecture, not the infrastructure.

Why Statamic

I covered four reasons:

  1. UI/UX -- journalists love it. The editorial experience is good. Journalists switch between breaking news, feature articles, and live blogs without friction. The CP is fast.

  2. Based on Laravel -- the team already knew Laravel. No context switching between the CMS and the application layer. When something needed customizing, it was PHP and Laravel all the way down.

  3. Community -- friendly and engaged. When I needed help or found a bug, the Statamic Discord was responsive. I ended up contributing ~200 fixes and improvements back to Statamic core.

  4. Vanilla Statamic -- this was the key slide. With 40+ custom addons, most people would assume heavy customization of the core. But no. It's vanilla Statamic with addons. Every customization is a package. The composer.json slide showed the full list: tv2regionerne/statamic-filter-builder, tv2regionerne/statamic-reverse-relationship, tv2regionerne/statamic-curated-collections, tv2regionerne/statamic-image-cropper, tv2regionerne/statamic-private-api, and many more. 7 of them are free on the Statamic marketplace.

The live demo

I did a live demo. Someone in the audience asked "what could go wrong?" and I put that on a slide. The demo showed the Statamic CP managing content across the regional sites, the addon architecture, and the editorial workflow for breaking news. It went fine. Nothing broke.

After the talk

Several teams are considering Statamic for projects they would normally build with WordPress or a headless CMS. The scale numbers opened eyes. Statamic can handle the load, and flat-file isn't the bottleneck everyone expects.

If you missed it, the Laravel Denmark community runs regular meetups in Copenhagen, Aarhus, and Odense. The next Laravel Live Denmark is already being planned. See you there.