Plain-English CMS
Learn more▾
I built this so a range owner could update his website by asking for changes in plain English instead of digging through WordPress. He can update content, see what changed, and track recurring jobs in one place.
How it held up
The model is never the security boundary. Every write goes through a server-side validator: scoped CSS only, no scripts or iframes, and a strict embed allowlist. Deletes go to trash and require explicit confirmation. The endpoint list is structural, so the assistant can only reach pages, posts, and media.
When the host’s bot wall blocked the Worker’s rotating IPs, I proved the issue with a matched test where only the source IP changed. Then I routed traffic through a small static-IP proxy and got that IP allowlisted.
Built with
- Cloudflare Workers
- Anthropic tool use
- WordPress REST
- Cloudflare Access
- Airtable