AWS Bites Episode 149: Headless CMS on AWS (September 18, 2025)
Overview
In this episode, AWS experts Eoin Shanaghy and Luciano Mammino dive into the world of headless CMS, with a particular focus on Strapi, an open-source solution. They share experiences, tips, and architectural advice for running Strapi on AWS, discuss key features, and examine both the strengths and rough edges of adopting a headless approach for content management. The hosts aim to help engineers escape the pain of hardcoded sites and enable marketing teams to independently manage content, all while leveraging modern cloud-native stacks.
Main Themes & Purpose
- The pain points of traditional content management and the limitations of tightly coupled CMS solutions.
- The alternative presented by headless CMS platforms—greater flexibility, separation of concerns, and improved workflows.
- Deep dive into Strapi, its features, practical workflow tips, and lessons learned from real-world usage.
- Considerations and recommendations for running Strapi on AWS, including when and how to self-host versus using Strapi Cloud.
Key Discussion Points & Insights
1. The Problem with Traditional CMS (00:00–02:10)
- Scenario: Developers are often stuck making last-minute marketing changes due to tightly coupled, hardcoded websites.
- Quote: "So you roll up your sleeves, open your editor and unstitch that new landing page into pure HTML and there goes your weekend. Yes, we have done that enough times to know it's not fun and we know you can relate." — Luciano [00:18]
- Solution Sought: Headless CMS lets marketing handle content without developer intervention and is not as complex or risky to host as WordPress.
- Benefits: Marketing can publish and shape pages; developers use the tools and frameworks they prefer.
2. The Headless CMS Landscape (02:36–04:29)
- Overview: Discussion of CRUD apps and how every new tool tends to recreate elements of a CMS. The hosts note the constant tradeoff between building from scratch and using existing solutions.
- Competitors: Brief mentions of Contentful, Storyblok, Sanity, Highgraph (formerly GraphCMS), and Byline CMS.
- Positioning Strapi: Noted as increasingly popular, open source, and evolving rapidly.
3. What Is Strapi? (04:29–07:23)
- Definition: Headless CMS — provides a backend/content API, not opinions on rendering or presentation.
- APIs: REST by default; GraphQL easily added via plugin.
- Visual Tools: Content type builder and simple setup using local SQLite.
- Ecosystem: Growing plugin marketplace, from translations to webhooks to media management.
- Strapi Cloud: SaaS option for those not wanting to self-host; runs on DigitalOcean with CDN support for assets.
4. Strapi’s Standout Features (08:02–11:32)
- Content Modeling: Visual builder, collection types, single types, components, and dynamic zones—allowing for highly flexible yet structured content.
- Blocks Editor: Stores rich content as JSON trees for flexible rendering (not just raw HTML), improving both customization and reuse for developers.
- Quote: "Rather than giving you the fully rendered content...the editor itself is storing all the different things...as a JSON abstract syntax tree. So everything is a block." — Luciano [10:57]
- Frontend Integration: React, Astro, Svelte, Vue can be easily wired via typed properties and renderers (e.g., blocks-react-renderer).
- Static Site Friendly: Webhooks can trigger CI builds for static publishing, boosting performance, security, and reducing costs.
- Media Management: Official AWS S3 upload provider and CloudFront CDN integration for asset delivery.
5. The Workflow: Modeling, Local Development, & Migration (15:54–21:11)
- Local-First Workflow: Preferable for testing and development; schema stored as JSON files in source control.
- Data Transfer & Migration: Strapi CLI's
transferfeature allows synchronization of content and schema between environments (local → production, remote → local, remote → remote).- Quote: "You can kind of synchronize in both direction...an easy way to propagate this data to the actual remote production instance rather than having to manually do all the work again." — Luciano [19:19]
- Schema Evolution: Soft migrations handled automatically on start; no raw DB migrations needed.
6. Pain Points & Rough Edges (21:11–23:21)
- Immaturity: Despite progress, still rapidly changing, with some bugs and incomplete documentation.
- Quote: "It's very common to find small bugs that can be annoying...for instance, if you copy a snippet of code from somewhere into the block editor...it ends up creating a block for each line." — Luciano [21:24]
- Documentation: Gaps and inconsistencies between major versions; sometimes misleading or outdated.
7. Running Strapi on AWS (23:21–29:46)
- Why Self-Host?: Data residency, cost, SSO requirements, or large-scale multi-tenancy are reasons to avoid Strapi Cloud.
- Quote: "There might be other reasons why you might want to self host. Maybe...you want to keep it in whatever local deployment you have or even in your own data center." — Luciano [23:49]
Recommended Architecture:
- Compute: Prefer containerization (Fargate, App Runner, or EKS); EC2 possible, but heavier on ops.
- Database: RDS (Postgres, MySQL, MariaDB)—avoid SQLite for shared production deployment.
- Assets: Use official S3 plugin; distribute assets via CloudFront CDN.
- Secrets Management: Use AWS Secrets Manager, inject via environment variables.
- CI/CD and Builds: Standard Node.js build process; always separate production and development configurations.
- Admin Security: Default is username/password, but can enhance with RBAC, IP allowlists, SSO (via plugin or external provider), or even VPC/private access with VPN.
- Quote: "Maybe if you are using...a static site and you want to secure as much as possible your admin ui, you might put it in a private VPC on aws, then give like a VPN access to your content editors..." — Luciano [28:31]
- Alternative Security: Application Load Balancer listener routing and integration with SSO for enterprise use cases.
8. Strapi’s Sweet Spot & Final Recommendations (30:28–32:11)
-
Use Cases:
- Need custom data models with full flexibility.
- Favor decoupling of content and presentation.
- Value open-source or self-hosted solutions on AWS.
- Headless CMS complementing serverless/static sites.
- Strapi Cloud as a managed option, but SSO and multi-tenancy may require self-hosting.
- Strapi’s strongest suit: productivity and flexibility for both devs and marketing/content editors.
-
Quote: "If all of that ticks, all those boxes get ticked. Strapi is a fairly solid choice, but if you prefer something fully managed, there's a lot of other options out there..." — Owen [30:46]
Notable Quotes & Moments
-
On the Motivation to Move to Headless:
"What if there were a way to keep content separate from how you fetch and render it?...Marketing beliefs in the CMS shaping pages and publishing changes without tapping on your shoulder." — Luciano [00:38] -
On Flexibility:
"It's great that it separates those two things. The modeling that maps to modern front ends is quite nice." — Owen [08:16] -
On the Task of Migrating Data:
"And thankfully the CLI that STRAPI offer has a feature called transfer. And the way it works is that you can kind of synchronize in both direction... " — Luciano [19:28] -
On Choosing Where to Host:
"I think at some point there might be a level where putting the effort into managing the deployment and hosting yourself might be more cost convenient than having dozens of instances in STRAPI cloud." — Luciano [24:13]
Timestamps for Key Segments
- Traditional CMS pain points: 00:00 – 02:10
- Headless CMS landscape overview: 02:36 – 04:29
- What is Strapi? Key features: 04:29 – 07:23
- Strapi architecture and developer workflow: 08:02 – 11:32
- Blocks editor, components & dynamic zones deep dive: 10:15 – 15:54
- Local development & migration strategies: 15:54 – 21:11
- Pain points and maturity: 21:11 – 23:21
- Self-hosting Strapi on AWS: 23:21 – 29:46
- Security & access control strategies: 28:31 – 30:15
- Final use cases, positioning, and takeaways: 30:28 – 32:11
Summary & Takeaways
- Strapi is a strong open-source, headless CMS with powerful content modeling (blocks editor, components, dynamic zones) and a friendly local-first workflow. It's best suited to teams that want flexibility, control, and are open to some operational setup. While Strapi Cloud is available, AWS-native self-hosting is attractive for more complex needs (data control, cost, SSO).
- Documentation and stability are improving, and the community moves quickly.
- Best practices are to use containers for compute, RDS for the database, S3/CloudFront for assets, and to lock down admin access according to company security needs.
- For greenfield content-driven projects, or when building highly customized content models, Strapi is a compelling option—especially for AWS shops.
Listener Invitation
- Have you shipped something with Strapi? Hosted on AWS? Tried other headless CMS platforms? The hosts invite you to share your experiences and architectures.
Hosts:
- Luciano Mammino
- Eoin Shanaghy
Episode sponsored by For Theorem (AWS consulting).
