Skip to content

Forge Monorepo

This is the consolidated Forge monorepo containing all infrastructure code, .NET packages, and TypeScript libraries in a domain-first organization structure.

Repository Structure

Core Domains

  • src/terraform/ - Azure infrastructure modules and examples
  • 10 domain-specific repositories (AI, Compute, Databases, etc.)
  • Each contains reusable Terraform modules with examples and tests
  • src/dotnet/ - .NET platform packages and development tools
  • 14 NuGet packages providing core platform capabilities
  • Development tools and CLI utilities
  • src/typescript/ - TypeScript libraries and packages
  • 2 NPM packages for platform integration and TypeSpec definitions

Development Areas

  • src/playground/ - Experimental environment for testing new technologies
  • Domain-specific subdirectories for prototyping
  • Isolated from production code
  • Use src/playground/scripts/playground-setup.ps1 to create new experiments

Tools and Documentation

  • tools/ - Migration scripts and development utilities
  • docs/ - Architecture and development documentation

Development Workflow

Working with Terraform Modules

cd src/terraform/{domain}/modules/{module-name}
terraform init
terraform validate

Working with .NET Packages

cd src/dotnet/{package-name}
dotnet build
dotnet test

Working with TypeScript Packages

cd src/typescript/{package-name}
npm install
npm run build
npm test

Creating Playground Experiments

cd src/playground
./scripts/playground-setup.ps1 -ExperimentName "my-experiment" -Domain terraform

Architecture Principles

  • Domain-First Organization: Code organized by business/technical domain rather than technology
  • History Preservation: Complete Git history maintained for all components
  • Independent Development: Each domain can be developed and tested independently
  • Shared Infrastructure: Common tools and patterns shared across domains
  • Experimental Isolation: Playground environment for testing without affecting production code

Contributing

See the individual domain documentation for specific contribution guidelines:

  • Terraform: See AI coding instructions in each repository's .github/copilot-instructions.md
  • .NET: Follow standard .NET development practices
  • TypeScript: Follow NPM and TypeScript conventions

License

This project follows the licensing terms of the original repositories. See individual package documentation for specific license information.