Packages
The monorepo has two shared packages, both built with TSUP and consumed via the workspace protocol.
Overview
| Package | Purpose | Consumed by |
|---|---|---|
| @sustentus/ui | Shared shadcn (New York) components | web, marketing, storybook |
| @sustentus/services | Business logic, DB, AI, email, notifications | web (and other apps server-side) |
apps/dashboards does not use @sustentus/ui — it keeps its UI primitives locally.
Workspace dependencies
Apps reference packages with the workspace protocol, so they always link to the local version:
{
"dependencies": {
"@sustentus/ui": "workspace:*",
"@sustentus/services": "workspace:*"
}
}Turborepo builds the packages before any app that depends on them.
Build
Both packages use TSUP (esbuild) to emit ESM plus .d.ts declarations to dist/.
pnpm packages:dev # both in watch mode
pnpm ui:dev # ui only
pnpm services:dev # services only
pnpm packages:build # build both@sustentus/services exposes multiple scoped entrypoints (/server, /shared, /db, /ai,
/email, /blob, /utils, /types, /linear-error) — see the services
package. @sustentus/ui exports its components from a single barrel
plus ./globals.css.
Learn more
Last updated on