Static files and structured content in one system. Every update versioned. Preview before going live. Promote when ready. Self-hosted or cloud.
# Deploy your site in one command wren deploy ./dist --tree mysite --public Found 47 files in ./dist Creating binary collection: mysite-assets Uploaded 47 files... Created public read permission for tree:mysite Deployed to tree "mysite": 47 uploaded, 0 unchanged, 47 new paths Public URL (needs a principal=* rule): https://wren.example.com/orgs/acme/tree/mysite/index.html
Why WREN
No CI/CD pipeline. No separate CMS. No build step. Just upload and serve.
wren deploy ./dist --tree mysite uploads your files, creates the tree, and gives you a URL. Done.
Every upload creates a new version. Diff any two, roll back to any point. Full history for HTML, CSS, images — everything.
Deploy with --label preview. Check it with your key on the private API — the public site doesn’t change. Promote to published when ready. One label controls what’s live.
Your static files and your JSON data live in the same system. One tree, one permission model, one label makes everything live atomically.
Filter, project, and aggregate your collections. Return only the fields you need. Materialized queries auto-refresh — no hand-built index docs.
Add <script src="/wren.js"> to your deployed site. Web components like <wren-list> and <wren-query> bind live data — no JS to write.
How it works
Three steps from local build to live site. No CI pipeline, no build service, no waiting.
Point wren deploy at your dist/ folder. It scans every file, uploads only what changed (compared by content hash), assigns each to a tree path, and prints your live URL. First deploy auto-creates the binary collection and public permission.
Deploy with --label preview. New versions are created but the public site is unchanged — visitors still see the published label. You (and your agents) see the new version through the private API with your key; public URLs keep serving published.
One command moves the published label to every document’s current version. Static files and JSON data go live atomically. No race condition between “the site deployed but the data hasn’t synced.”
Compare
WREN replaces both the hosting layer and the content backend.
AI agents
One server, one MCP endpoint. What you publish, anyone’s agent can find and use. What you keep private, only your agents reach — with your permissions, and nothing they do is permanent.
Any agent can connect to /mcp without signing up, see who publishes what, and read published sites and collections. Always the released version, never your drafts.
“Sign in with WREN” from Claude, Cursor or VS Code, pick the org, and the agent works with your groups’ access. Or give it an API key. Revoke either at any time.
Agent writes land as new versions labeled preview. Review the diff, promote what’s good, roll back what isn’t. Nothing is overwritten.
# Read anyone’s public data — no account needed claude mcp add --transport http wren-public https://wren.aemwip.com/mcp # Work in your own org — opens a browser to sign in and choose the org claude mcp add --transport http wren https://wren.aemwip.com/mcp/login
Pricing
Every plan includes deploy, versioning, labels, trees, and the full REST API.
For personal projects and experiments.
For side projects and small teams.
For production workloads and compliance.