This is a blueprint for monorepos.
-
apps/
All applications live here. -
packages/
Shared code and libraries (if any) go here. -
docs/
Any documentation that future developers should be aware of goes here. -
infra/
Any infrastructure orchestration and deployment code.
- This monorepo uses Turbo (
turbo.jsonat the root) for advanced monorepo management. - Turbo enables fast, incremental builds and task orchestration across all apps and packages.
- You can use Turbo to manage tasks, caching, and pipelines for both JavaScript/TypeScript and non-JavaScript projects (e.g., Python, Go, Rust, etc.).
- This means you can add and manage non-JS projects in this monorepo, and define their build/test/lint pipelines in
turbo.json. - See the Turbo documentation for more details on configuring and using Turbo in a polyglot monorepo.
- Always use pnpm for installing or creating dependencies.
- The workspace is managed via
pnpm-workspace.yaml. - To install all dependencies for every app and package, run:
pnpm install
- To add a dependency to a specific app or package, run:
pnpm add <package-name> --filter <app-or-package-name>
- All secrets and keys should be managed via environment variables.