Emdash CMS Cloudflare Free Plan Limitations FAQ
What still works on Free plan, what does not, and how to ship Emdash CMS safely without paid Dynamic Workers features.
What does the Cloudflare Free plan limit in Emdash CMS?
Core CMS workflows remain available, but sandboxed plugin execution is not.
In practice, content management and normal site deployment work, while Dynamic Workers-dependent plugin isolation does not.
Should worker_loaders stay in config?
No. Remove it on Free plan.
Leaving it in place often causes deploy/runtime failures because it depends on paid capabilities.
Can I still ship to production on Free plan?
Yes, with clear boundaries:
- suitable for content, docs, and marketing sites
- not suitable if your core workflow depends on sandboxed third-party plugins
If sandboxed plugin execution is not mission-critical, Free tier is usually enough to start.
How should plugin usage be handled safely on Free plan?
Use a trusted-plugin policy:
- enable plugins with auditable ownership
- run dependency and permission review before release
- move high-risk integration logic into isolated backend services
Free tier is not “no plugins”; it is “no isolated runtime for untrusted plugins.”
Why can deployment succeed while plugin features still fail?
Because “deployable” and “sandbox-capable” are different requirements.
Basic Worker runtime enables deployment; Dynamic Workers enables isolated plugin execution.
When should I seriously evaluate a paid plan?
Evaluate upgrade if any condition is true:
- you need to run plugins from partially untrusted sources
- compliance requires plugin-level isolation evidence
- business impact from plugin privilege abuse is unacceptable
If these do not apply yet, running stable operations on Free tier is a valid strategy.
Minimal pre-launch checklist on Free tier
Confirm before launch:
worker_loadersis removed.- D1/R2 binding names are consistent.
- Plugin list contains no sandbox-required entries.
- Post-release validation covers content write/read and media upload.
These four checks reduce real incident risk more effectively than premature plan upgrades.
Free-tier configuration example
{
"d1_databases": [{ "binding": "DB", "database_name": "your-db", "database_id": "..." }],
"r2_buckets": [{ "binding": "MEDIA", "bucket_name": "your-media-bucket" }]
// No worker_loaders on Free plan
}