For those of you following the infrastructure saga on my personal blog – the Kubernetes-to-Docker-Swarm migration is done. All Magic Pages sites are now running on the new infrastructure.
Why the Switch
Kubernetes was the right choice two years ago. It let Magic Pages scale from 100 to 1,200+ sites. But it also came with complexity that consumed way too much of my time. Storage issues. Memory-hungry components. Constant firefighting.
Running a managed hosting platform for 1,200+ publishers means infrastructure reliability isn't just a nice-to-have – it's the product. Every hour I spent debugging Kubernetes networking quirks or wrestling with persistent volume claims was an hour not spent building features, improving support, or growing Magic Pages.
Docker Swarm is simpler. It's faster. And frankly, for what Magic Pages needs, it's better.
What Changed Under the Hood
The migration replaced the entire orchestration layer that manages how your Ghost sites are deployed, scaled, and maintained. In practical terms:
- Deployment speed: Spinning up new sites and applying updates is significantly faster. What used to take minutes now takes seconds.
- Resource efficiency: Docker Swarm has a much smaller footprint than Kubernetes. Less overhead means more server resources go directly to running your Ghost sites.
- Operational simplicity: Fewer moving parts means fewer things that can break. The new setup is easier to monitor, debug, and maintain – which translates directly into better uptime and faster incident response.
- Reliability: The persistent storage issues that occasionally caused problems under Kubernetes are gone. The new architecture handles storage in a way that's fundamentally more straightforward.
How the Migration Happened
The migration ran in parallel over several weeks. New infrastructure was set up alongside the existing Kubernetes cluster, sites were moved over in batches, and each batch was monitored before proceeding to the next.
If you didn't notice the migration – that was the goal. Most customers were moved to the new infrastructure without any downtime or intervention required on their end.
There was one incident related to the migration, which I don't want to hide. It was painful, but the learnings improved the new infrastructure even more:

This is the less visible than other shiny new features but maybe even more important. The reduction in operational complexity frees up significant time – time that's now going into the features and improvements you've been seeing on our roadmap.
Docker Swarm, combined with the recent Cloudflare migration, means Magic Pages is now running on an infrastructure stack that's simpler, faster, and more cost-effective than what we had six months ago.