Developer preview. Vela, Facet, and Quire are pre-release and in active development — syntax, APIs, and availability may change, and they are not yet generally available.
SStretch Dev Docs
Quire

Migration from Press

Conservative migration workflows from Liquid, Shopify, WordPress, WXR, Handlebars/Mustache, and Markdown/MDX.

Migration is designed as a typed checkpoint, not a runtime bridge. Source adapters map legacy templates into stretchpress.blocks.v1, then import that IR back to .quire.

Supported inputs

quire migrate path/to/template.liquid --from liquid --out path/to/page.quire
quire migrate path/to/sections/product.liquid --from shopify --out path/to/product.quire --report path/to/report.json
quire migrate path/to/single.php --from wordpress --name ImportedPost --out path/to/post.quire
quire migrate path/to/export.xml --from wxr --name ImportedWXR --out path/to/post.quire
quire migrate path/to/template.hbs --from handlebars --out path/to/page.quire --report path/to/report.json
quire migrate path/to/page.mdx --from mdx --out path/to/page.quire --report path/to/report.json

Bundle migration

quire migrate-bundle path/to/shopify-theme --from shopify --name Dawn --out migrated/dawn --report migrated/dawn.report.json

Bundle mode writes one .quire file per source when --out is provided and reports an aggregate score.

Report format

Migration reports are typed and versioned:

{
  "format": "quire.migration",
  "version": 1,
  "source": { "from": "liquid", "kind": "liquid-template", "file": "templates/product.liquid" },
  "confidence": "starter",
  "fidelity": {
    "mapped": [],
    "partial": [],
    "unmapped": [],
    "summary": { "mapped": 0, "partial": 0, "unmapped": 0 },
    "score": { "percent": 100, "grade": "A" }
  },
  "inferred": ["model product: Product"],
  "warnings": [],
  "unsupported": []
}

confidence is derived from fidelity:

  • starter: fully mapped
  • assisted: partial mapping
  • partial: unmapped constructs present

Mapping behavior by source type

  • Liquid: common objects (product, collection, cart, post, page) mapped to model fields; filters with formatter equivalents recorded as mapped when possible.
  • Shopify: supports sections, snippets, template JSON, schema blocks/settings, and section metadata capture for explicit follow-up.
  • WordPress PHP/WXR: maps common title/content/metadata helpers and post model outputs; shortcodes and hooks are reported, not executed.
  • Handlebars/Mustache/MDX: maps simple branches and expressions into typed props; controls/partials are partial mappings that should be converted to components/blocks.

Security and limitations

Migration never executes unsafe legacy code. It is constrained to conservative conversion and may emit manual follow-up:

  • no PHP/Liquid/shortcode execution
  • no HTML/CSS/JS passthrough into rendered props
  • no automatic shortcodes or theme hooks preservation
  • no network/database access during migration

Use generated .quire as a starting checkpoint and refine by hand with project schemas and component libraries.

Real-world proof points

The source tree includes:

  • examples/migration-gallery/ with representative .quire checkpoints
  • examples/migration-showcase-scale/ with multiple public theme fixtures
  • aggregate and per-document reports under examples/migration-showcase-scale/reports/ and scorecards/