Export a complete site as a portable .beam archive and import it elsewhere. Content, settings, schema, agents, media manifests — everything except uploaded binaries.
Where it is
Settings → Beam (/admin/settings?tab=beam).
A beam is a single-file archive of a complete @webhouse/cms site. Think of it like a git bundle for CMS state: portable, reproducible, and useful for moving a site between environments or sharing a site template with a collaborator.
What goes in a beam
- Content — every document JSON file (
content/*/.json) - Site config —
cms.config.ts(as text) - Settings —
_data/site-config.json, backups config, deploy config (secrets redacted) - Schema — generated
webhouse-schema.json - Agents —
_data/agents/(prompts, budgets, locale config) - Brand voice —
_data/brand-voice.json+ locale caches - Team —
_data/team.json(member list; not password hashes — those live on the account, not the site) - Event log — last 500 entries
- Media manifest — filenames + EXIF + AI-analysis for every media asset
What's NOT in a beam
- Uploaded binaries — images, videos, PDFs stay where they are. A beam references them; it doesn't embed them. Export media separately if you need to move a site to a new host
- Node modules — the target environment has its own
- Secrets — API keys, passwords, webhook signing secrets are redacted to
REDACTED_BY_BEAM. You re-enter them on import - Generated build output —
dist/,.next/,public/uploads/*-400w.webp
Exporting
Click Export site as .beam. The CMS generates a signed archive and streams it to you as {site-id}-{YYYY-MM-DD}-{short-hash}.beam. Size is usually 50 KB – 5 MB depending on content.
The beam is signed so later imports can verify it wasn't tampered with. The signing key is site-specific; swap the site and the signature breaks, which is what you want.
Importing
Two entry points:
- This tab — import into this site. Overwrites current content, config, settings. Backs up the existing state to a timestamped folder first (safety net).
/admin/sites/new → Beamtab — create a new site from a beam. Lets you rename the site, change the organization, keep or regenerate the schema.
On import the CMS:
- Verifies the archive signature
- Backs up the current state (if importing into an existing site)
- Writes content + config + settings to disk
- Re-registers the site in the registry
- Prompts you to paste redacted secrets (API keys) before first deploy
Use cases
- Migrate from dev to prod — export from the dev machine, import to the production host
- Template a site — build a showcase site, beam it, share with a client to seed their own site
- Time-travel — keep a rolling set of beams as a coarse-grained backup over full snapshots
- Collaborator handoff — "here's a beam, spin up a fresh site from it"
Relationship to backups
Backups (Settings → Backup) store incremental snapshots with cloud sync. Beams are one-shot, full-site portable archives meant to be moved.
| Use case | Use |
|---|---|
| Daily safety net | Backup |
| Restore this site to a previous date | Backup |
| Move to a new host / account | Beam |
| Hand off to a collaborator | Beam |
| Clone a template site | Beam |
Related
- Backup settings — scheduled snapshots
- WordPress migration — import from external WP sites
- Framework consumers — what
webhouse-schema.jsonis used for