# Single vs. Multi-Module Repositories

A **single-module repository** contains one application or service, usually managed in a single Git repository. It's straightforward and ideal for small projects with limited scope. All code, dependencies, and configurations reside in one place, simplifying builds, testing, and deployment.

In contrast, a **multi-module repository** organizes multiple applications, services, or libraries within a single Git repository. This structure is common in large-scale projects using modular architectures (e.g., microservices or plugin-based systems). Each module can often be built and tested independently while sharing common infrastructure or code.

## Choosing the Right Approach

Consider the following criteria:

1. **Project Size & Complexity**
   * Use a single-module repo for simple or single-purpose projects.
   * Use a multi-module repo for complex systems with shared components.
2. **Team Structure**
   * Small teams benefit from simplicity with a single module.
   * Larger teams may prefer modular repos for separation of concerns.
3. **Build & Deployment Needs**
   * Single-module repos simplify CI/CD pipelines.
   * Multi-module setups offer granular control over builds and deployments.
4. **Code Sharing & Reuse**
   * Multi-module repos enable efficient code reuse without dependency overhead.
5. **Tooling & Maintenance**
   * Multi-module projects require more advanced tooling and maintenance practices.

Choose the structure that aligns with your team size, project scope, and development workflow.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platformnx.com/using-git-to-develop-applications/single-vs.-multi-module-repositories.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
