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

Packages & Registry

Compile-time component packages, local registries, starter files, lockfiles, and package safety rules.

Quire packages are compile-time bundles for reusable .quire component libraries and theme-token contracts. They never execute source code and never resolve package names from the network during compilation.

Package manifest

Every package contains quire.package.json. From starters/store/quire.package.json:

{
  "format": "quire.component-package",
  "version": 1,
  "name": "@stretchgroup/quire-starter-store",
  "packageVersion": "1.0.0",
  "kind": "component",
  "exports": {
    "StoreStarter": "./components.quire"
  },
  "starter": {
    "entry": "pages/home.quire",
    "description": "Commerce starter with hero, featured products, collection cards, and cart summary.",
    "files": [
      {
        "source": "./quire.schema.json",
        "target": "quire.schema.json"
      },
      {
        "source": "./starter/pages/home.quire",
        "target": "pages/home.quire"
      }
    ]
  }
}

version is the manifest format version. packageVersion is the semver package version used by registries and lockfiles.

Supported package kinds are component, theme, and mixed. Theme packages may declare token metadata, a theme schema, and variants, but styling remains outside the language.

Imports

After installation, .quire source can import by package name. From starters/store/starter/pages/home.quire:

import { StoreStarter } from "@stretchgroup/quire-starter-store"

quire StoreHome {
  model {
    site: StoreSite
    cart: Cart
  }

  route "/"
  title site.title

  include StoreStarter home {
    site site
    cart cart
  }
}

Bare package imports resolve only from local quire_packages/ directories by walking up from the importing file. They do not touch node_modules, remote registries, or executable package hooks.

Registry flow

Publish into a local registry:

quire publish ./library/product-cards --registry ./quire.registry.json

Install into a project:

quire add @stretchgroup/product-cards --registry ./quire.registry.json --project ./site

Installation creates quire_packages/..., quire.lock.json, and starter files declared by the package when present.

Safety rules

Published files are inert source and metadata. Allowed file types are .quire, .json, .md, and .txt. Starter targets cannot be absolute paths or escape the project directory. node_modules, .git, build output, coverage, and temporary folders are excluded.