Webiny CMS
Serverless headless CMS with page builder and form builder.
Overview
Webiny is a full-stack serverless CMS platform built specifically for AWS infrastructure, featuring a headless architecture with integrated page builder and form builder capabilities. Originally designed to run on Lambda functions with DynamoDB and S3, Webiny provides a complete content management solution that scales automatically without traditional server management. The platform combines a GraphQL API backend with a React-based admin interface and page builder, enabling both developers and content creators to build sophisticated web applications.
This Docker stack recreates Webiny's serverless environment locally using DynamoDB Local as the database layer, allowing developers to work with the full CMS functionality without deploying to AWS. The containerized setup maintains Webiny's code-first GraphQL schema approach while providing the visual page builder and form builder tools that make it unique among headless CMS platforms. DynamoDB Local acts as a faithful replica of AWS DynamoDB, ensuring that database operations, queries, and data structures remain consistent between local development and cloud deployment.
Developers working on serverless applications, agencies building client websites with custom content management needs, and teams transitioning from traditional CMSs to headless architectures will find this stack particularly valuable. The combination provides the full Webiny development experience locally while maintaining compatibility with AWS deployment, making it ideal for prototyping serverless content solutions, training teams on serverless CMS concepts, and developing custom plugins or themes for Webiny installations.
Key Features
- Visual page builder with drag-and-drop components and theme customization
- Form builder with validation rules, conditional logic, and submission handling
- Code-first GraphQL API with automatic schema generation and type safety
- Multi-tenant architecture supporting multiple websites from single installation
- Plugin-based extensibility system for custom functionality and integrations
- Built-in file manager with image optimization and CDN integration support
- Advanced content modeling with custom post types and field definitions
- Role-based access control with granular permissions for content and admin functions
Common Use Cases
- 1Local development environment for AWS-deployed Webiny CMS projects
- 2Agency prototyping of client websites requiring custom content management
- 3Training and evaluation of serverless CMS concepts before cloud commitment
- 4Development of custom Webiny plugins and themes in isolated environment
- 5Content migration testing from existing CMS platforms to Webiny
- 6Multi-site management system for organizations with multiple web properties
- 7Headless CMS backend for mobile applications and static site generators
Prerequisites
- Docker and Docker Compose with minimum 4GB RAM allocation
- Port 3000 and 8000 available for Webiny admin and DynamoDB Local
- Basic understanding of GraphQL API concepts and headless CMS architecture
- Familiarity with React development for custom component creation
- AWS CLI configured if planning to deploy to production environment
- Node.js knowledge for Webiny plugin development and customization
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 webiny: 3 image: webiny/webiny:latest4 container_name: webiny5 restart: unless-stopped6 environment: 7 DEBUG: "true"8 DB_HOST: dynamodb-local9 ports: 10 - "3000:3000"11 depends_on: 12 - dynamodb-local13 networks: 14 - webiny-network1516 dynamodb-local: 17 image: amazon/dynamodb-local:latest18 container_name: dynamodb-local19 ports: 20 - "8000:8000"21 networks: 22 - webiny-network2324networks: 25 webiny-network: 26 driver: bridge.env Template
.env
1DEBUG=trueUsage Notes
- 1Docs: https://www.webiny.com/docs/
- 2Access at http://localhost:3000
- 3GraphQL API with code-first schema
- 4Page Builder and Form Builder included
- 5Designed for AWS serverless (Lambda, DynamoDB, S3)
- 6Local dev uses DynamoDB-local; production requires AWS
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
webiny
webiny:
image: webiny/webiny:latest
container_name: webiny
restart: unless-stopped
environment:
DEBUG: "true"
DB_HOST: dynamodb-local
ports:
- "3000:3000"
depends_on:
- dynamodb-local
networks:
- webiny-network
dynamodb-local
dynamodb-local:
image: amazon/dynamodb-local:latest
container_name: dynamodb-local
ports:
- "8000:8000"
networks:
- webiny-network
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 webiny:5 image: webiny/webiny:latest6 container_name: webiny7 restart: unless-stopped8 environment:9 DEBUG: "true"10 DB_HOST: dynamodb-local11 ports:12 - "3000:3000"13 depends_on:14 - dynamodb-local15 networks:16 - webiny-network1718 dynamodb-local:19 image: amazon/dynamodb-local:latest20 container_name: dynamodb-local21 ports:22 - "8000:8000"23 networks:24 - webiny-network2526networks:27 webiny-network:28 driver: bridge29EOF3031# 2. Create the .env file32cat > .env << 'EOF'33DEBUG=true34EOF3536# 3. Start the services37docker compose up -d3839# 4. View logs40docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/webiny/run | bashTroubleshooting
- DynamoDB connection errors: Verify dynamodb-local container is running and accessible on port 8000
- Webiny admin interface blank or loading indefinitely: Check browser console for JavaScript errors and verify all containers are healthy
- GraphQL schema errors on startup: Clear DynamoDB Local data volume and restart containers to rebuild schema
- Page builder components not loading: Ensure DEBUG environment variable is set to true and check container logs
- Form submissions not saving: Verify DynamoDB Local has proper table permissions and restart webiny container
- Memory issues during development: Increase Docker memory allocation to minimum 4GB for optimal performance
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download