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-haiku-4.5 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
(anthropic/claude-haiku-4.5). The BRD agent and expert-fit scoring live in
@sustentus/services/ai and @sustentus/services respectively. See the services
package.
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.