Skip to Content
TechnicalPackagesPackages

Packages

The monorepo has two shared packages, both built with TSUP and consumed via the workspace protocol.

Overview

PackagePurposeConsumed by
@sustentus/uiShared shadcn (New York) componentsweb, marketing, storybook
@sustentus/servicesBusiness logic, DB, AI, email, notificationsweb (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