This directory contains the core JavaScript/TypeScript packages and scripts for Schematic, including reusable components, React bindings, and utility scripts.
-
components/
Theschematic-componentspackage: Client-side React components for customer portals, checkouts, and more.
Seecomponents/README.mdfor details. -
react/
Theschematic-reactpackage: React hooks and utilities for integrating Schematic into React apps.
Seereact/README.mdfor details. -
vue/
Theschematic-vuepackage: Vue composables and utilities for integrating Schematic into Vue apps.
Seevue/README.mdfor details. -
js/
The core Schematic JS SDK: Core logic and utilities for interacting with Schematic APIs.
Seejs/README.mdfor details. -
scripts/
Utility scripts for local development and testing.test-components.sh: Build and link components locally or with Vercel for testing in the demo app
Each package is managed independently but can be linked together for local development.
See the individual package READMEs for setup and usage instructions.
The packages install each other from npm, each with its own lockfile, and CI
installs with --frozen-lockfile. Two rules keep a release of one package
from blocking work on another:
- A package types itself by what it consumes, not by its upstream's whole
contract.
reactnames the billing resources it serves and picks the client members it calls (react/src/billing/contract);componentsdoes the same againstreact. An addition upstream is then invisible until the downstream package adopts it, so taking a newer upstream never carries a feature with it. - A floor bump is its own PR. Once the upstream version is on npm, raise
the range in
package.json, runpnpm update @schematichq/<package>, and merge that alone. Feature PRs base on it. A bump inside a feature PR cannot go green until the feature's own upstream is published, and a feature that needs an unpublished upstream stays a draft until the bump lands.
MIT
Need help? Please open a GitHub issue or reach out to support@schematichq.com.