Now available · Cloud or self-hosted

Deploy your site.
Version your data.
One command.

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
Preview:  https://wren.example.com/orgs/acme/tree/mysite/index.html

Your files and your data. One place. Versioned.

No CI/CD pipeline. No separate CMS. No build step. Just upload and serve.

One-command deploy

wren deploy ./dist --tree mysite uploads your files, creates the tree, and gives you a URL. Done.

Every file versioned

Every upload creates a new version. Diff any two, roll back to any point. Full history for HTML, CSS, images — everything.

Preview → Promote

Deploy with --label preview. Test at ?label=preview. Promote to published when ready. One label controls what’s live.

Content + code together

Your static files and your JSON data live in the same system. One tree, one permission model, one label makes everything live atomically.

API-first data

Collections are queryable, filterable, faceted. Your site’s data is also a REST API. Schemas, labels, natural keys — built in.

Self-hosted or cloud

One Docker image. Bring your own Postgres. No vendor lock-in. Your data, your servers, your rules.

Deploy. Preview. Promote.

Three steps from local build to live site. No CI pipeline, no build service, no waiting.

1

Deploy your build output

Point wren deploy at your dist/ folder. It scans every file, uploads only what changed (size-based diffing), assigns each to a tree path, and prints your live URL. First deploy auto-creates the binary collection and public permission.

wren deploy ./dist --tree mysite --public
# 47 files uploaded, live at /orgs/acme/tree/mysite/index.html
2

Preview before going live

Deploy with --label preview. New versions are created but the public site is unchanged — visitors still see the published label. Add ?label=preview to any URL to see the new version yourself.

wren deploy ./dist --tree mysite --label preview
# 3 files changed. Public site unchanged.
# Preview: .../tree/mysite/index.html?label=preview
3

Promote to 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.”

wren promote mysite --from preview
# 47 documents labeled "published". Site is live.

What you get vs. what you’d build.

WREN replaces both the hosting layer and the content backend.

Vercel / Netlify

  • One-command deploy
  • Preview deployments
  • No structured data store
  • No per-file version history
  • No rollback to arbitrary version
  • Not self-hostable
  • Content needs a separate CMS

Headless CMS + CDN

  • Doesn’t host your files
  • Structured content editing
  • Preview / draft mode
  • No file versioning
  • Content and code deploy separately
  • Two systems to manage
  • Data sync race conditions

WREN

  • One-command deploy
  • Preview via labels
  • Structured JSON collections
  • Every file versioned + diffable
  • Rollback any file, any version
  • Content + files go live atomically
  • Self-hosted with Docker

Start free. Scale when you’re ready.

Every plan includes deploy, versioning, labels, trees, and the full REST API.

Free

$0/month

For personal projects and experiments.

  • 1 organisation
  • 3 collections
  • 1 000 documents
  • 100 MB storage
  • 10 000 API requests / day
  • Community support
Get started

Enterprise

Custom

For production workloads and compliance.

  • Unlimited everything
  • SSO & audit logging
  • Self-hosted or managed
  • Dedicated support & SLA
Contact us