@teamstep/design-system lives in the sibling repo TeamSTEP/brand-assets. This site consumes it as an npm package. Two modes keep local iteration and production deploys clean.
| Mode | When | Command |
|---|---|---|
| Local link | Co-developing DS + landing page | pnpm ds:use-local |
| Published | CI / preview / production | pnpm ds:use-published |
Clone layout expected for local mode:
Projects/
brand-assets/ ← design system monorepo
teamstep.io/ ← this site
# once
pnpm ds:use-local
# every session — watches DS (tsup) + Astro together
pnpm dev:all- Edit components/tokens in
brand-assets/packages/design-system. tsup --watchrebuildsdist/.- Astro Vite picks up the symlink and hot-reloads the page.
- Fix DS issues in Storybook (
pnpm storybookin brand-assets) or against this live page.
When a DS change should land independently of the landing page:
- Finish and verify with
pnpm dev:allagainst this repo. - In brand-assets: changeset → version →
pnpm release(publishes to GitHub Packages). - In teamstep.io:
pnpm ds:use-published(or bump@teamstep/design-systeminpackage.json). - Commit the version bump and deploy the site on Vercel.
Preview deploys of the site always use the published package (CI must not use file:).
cp .npmrc.example .npmrc
# set GITHUB_TOKEN with read:packages (classic) or fine-grained Packages readCI: set NODE_AUTH_TOKEN / GITHUB_TOKEN as in brand-assets CONSUMER.md.
- Commit a
file:../brand-assets/...dependency on the branch that Vercel builds from production — switch to published first, or keep local mode only on a private WIP branch. - Import DS source files via relative paths from this repo — always go through the package exports (
@teamstep/design-system,/tokens.css,/styles.css).