Forge
Concepts

Projects

Understanding projects in Forge

Projects

A project is the fundamental unit of organization in Forge. Each project represents a buildable unit within your repository.

Project Inference

Forge automatically infers projects from files in your repository. When Forge detects certain files, it recognizes them as project roots:

FileProject Type
package.jsonJavaScript/TypeScript
pom.xmlJava (Maven)
build.gradleJava (Gradle)
go.modGo
openapi.yamlAPI
Chart.yamlHelm
DockerfileContainer

You don't need to manually register projects. Forge discovers them automatically by scanning for these files.

Project Graph

Forge builds a dependency graph between projects based on their imports and dependencies. This enables smart features like affected detection and parallel execution.

In this example:

  • frontend depends on backend and api
  • backend depends on api

When api changes, Forge knows to rebuild and test both backend and frontend.

Project Types

Forge supports various project types:

  • Application - Deployable applications (web apps, services)
  • Library - Shared code libraries
  • Container - Docker/OCI container images
  • Helm - Helm charts for Kubernetes deployments

Affected Detection

Because Forge understands the project graph, it can determine which projects are affected by a change:

nx affected -t build test

This only builds and tests projects that are impacted by your changes, saving time in CI and local development.

On this page