Development
This section provides guides for developing within the Sustentus monorepo.
Overview
The Sustentus monorepo uses modern development tools and practices:
- Turborepo: Task orchestration and caching
- pnpm Workspaces: Package management
- TypeScript: Type safety across all packages
- Hot Module Replacement: Fast feedback during development
- Linting & Formatting: Consistent code quality
Quick Start
Run all applications:
pnpm devRun specific applications:
pnpm marketing:dev # Port 3001
pnpm docs:dev # Port 3003
pnpm storybook:dev # Port 3002Run packages in watch mode:
pnpm packages:dev # Both packages
pnpm ui:dev # UI package only
pnpm services:dev # Services package onlyBuild, lint, and format:
pnpm build # Build everything
pnpm lint # Run ESLint
pnpm format # Format with Prettier
pnpm clean # Clean build outputsBuild-specific targets are also available: pnpm marketing:build, pnpm docs:build, pnpm storybook:build, pnpm packages:build.
Development Topics
Workflow
How features actually ship here — the /pipeline ICM delivery pipeline:
- The four gated stages: Define, Build, Ship, Release
- Branch and PR management (driven by the pipeline, not by hand)
- Code review and merge as the Ship stage
- Daily dev, testing, and debugging
Build System
Turborepo configuration, task dependencies, caching, and build optimization.
Code Style
TypeScript conventions, React patterns, file organization, and naming conventions.
Development Environment
Required Tools
- Node.js >= 22
- pnpm >= 10
- Git
- VSCode (recommended)
Recommended VSCode Extensions
- ESLint: Real-time linting
- Prettier: Code formatting
- TypeScript: Enhanced TypeScript support
- Tailwind CSS IntelliSense: Tailwind class autocomplete
- MDX: MDX syntax highlighting
Setup
- Clone repository
- Install dependencies:
pnpm install - Set up environment variables (see Getting Started)
- Run development servers:
pnpm dev
A typical flow is to run shared packages in watch mode (pnpm packages:dev) alongside the app you are working on (e.g. pnpm marketing:dev); changes to packages or app code update via HMR. When working on UI components, run pnpm ui:dev and pnpm storybook:dev together to see changes hot-reload in Storybook. Run pnpm lint and pnpm format before committing.
Port Reference
| Application | Port |
|---|---|
| Web platform | 3000 |
| Marketing | 3001 |
| Storybook | 3002 |
| Documentation | 3003 |
| Dashboards | 3005 |