Compose site from fixture
create_site_from_fixturePersist a fixture YOU composed as a new Sitelas site. Use this when the archetype-based create_site_from_template can't produce the structure you need — primarily for URL cloning (post-capture_url, when the source's section composition doesn't map cleanly to any shipped archetype), or for genuinely bespoke briefs that no archetype satisfies. For typical generation, prefer create_site_from_template — its archetypes are designer-tuned and produce higher-quality output by default. The fixture is validated (create_site_from_fixture (with dry_run: true) autofixes minor issues, throws on hard structural errors), then saved as a DRAFT (live URL 404s until publish). Returns the preview URL, site_id, manifest of patchable nodes, and warnings (e.g. unreachable pages). Pass dry_run: true to validate a fixture without creating a site.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Validate the fixture without creating anything: returns its errors (with paths) and the autofixes that would apply. site_name is not needed. | |
| fixture | Yes | Complete Fixture you composed. Must include `template` (metadata), `theme.config` (color tokens + typography), and `pages` (at minimum a '/' page with a `tree`). Optional: `siteElements.header/footer/pageLayout`, `collections` (each with its own `template`, `pathPrefix`, and `items[]` for starter rows). The fixture goes through create_site_from_fixture (with dry_run: true)'s autofix pass, so minor structural issues are repaired automatically; hard errors are returned with paths. | |
| site_name | No | Human-readable site name. Used as the metadata label and as the default subdomain base. Does NOT auto-substitute into header/footer brand text — set the brand text in your fixture's siteElements.header explicitly. | |
| subdomain | No | Preferred subdomain slug (a-z, 0-9, hyphen, 3–32 chars). Auto-generated from site_name if omitted. A 4-digit suffix is always appended to guarantee uniqueness. |