Technology Stack
The technologies and tools behind the Sustentus platform. This mirrors the canonical stack table in
the repo’s CLAUDE.md.
Core
| Layer | Technology |
|---|---|
| Monorepo | Turborepo 2 · pnpm 10 workspaces · Node 22 |
| Frameworks | Next.js 16 (web, dashboards) · Next.js 15 (marketing) · Nextra (docs, help) |
| Language | TypeScript 5 — strict mode everywhere |
| Styling | Tailwind CSS 4 |
| UI primitives | shadcn/ui (New York) · Radix UI · lucide-react |
| AI | Vercel AI SDK v6 — Anthropic Claude via the AI Gateway |
| Database | MongoDB + Mongoose (via @sustentus/services/server) |
| Auth | Clerk |
| Resend + React Email | |
| Real-time | Ably (notifications) |
| Storage | Vercel Blob |
| Analytics | PostHog · Vercel Analytics · Speed Insights |
| Charts | Recharts |
| Animation | Framer Motion |
| Build (packages) | TSUP (esbuild) |
| Error tracking | Linear (automatic error reporting) |
| Deployment | Vercel — production deploy on merge to main |
Notes on key choices
Frameworks
web and dashboards run Next.js 16 (App Router, Turbopack). marketing runs Next.js 15.
docs and help are Nextra sites. There is no separate backend app — apps/web hosts route
handlers and Server Actions.
AI
Runtime AI uses the Vercel AI SDK v6 with model strings routed through the AI Gateway. The
current models are listed once in the services package. The
BRD agent and expert-fit scoring live in @sustentus/services/ai and @sustentus/services
respectively.
Data & real-time
MongoDB + Mongoose is the database, accessed only through @sustentus/services/server.
Ably powers real-time notification delivery (see @sustentus/services/notifications).
Build & quality
TSUP bundles the two packages to ESM with type declarations. ESLint (root config) enforces the code conventions; Prettier formats via a Husky + lint-staged pre-commit hook. CI on each PR runs format + lint.