Most headless CMS setups still look like 2018: a Node server, a Postgres box in one region, and S3 for uploads. That works — until you want global latency, zero cold starts, and an ops surface you can explain in one diagram.
This series is about running a real headless CMS on Cloudflare Workers, with D1 for data and R2 for media, using SonicJS — an edge-first CMS built for that stack. Part 1 covers the architecture and content model. Part 2 covers deploy + CI/CD. Part 3 covers the auth and admin gotchas you’ll hit in production.
Why put a CMS on the edge?
A traditional CMS request path often looks like this:
User hits your API in us-east-1






