Project Manifest
In Salesforce DX, the Project Manifest is the sfdx-project.json file at the root of a DX Project. It declares which directories contain package source, the source API version used for metadata form…
Definition
In Salesforce DX, the Project Manifest is the sfdx-project.json file at the root of a DX Project. It declares which directories contain package source, the source API version used for metadata format conversions, the default Dev Hub alias, and - for Second-Generation Packaging (2GP) - package aliases, dependencies, and versioning. Salesforce CLI (sf, the unified CLI that replaced the original sfdx in 2023) reads sfdx-project.json on every command to understand the project layout.
In plain English
“The Project Manifest is the sfdx-project.json file at the top of a Salesforce DX project. It tells Salesforce CLI what packages are in this project, which source API version to use, and - for packaging projects - package versions and dependencies. Commands like "sf project deploy start" read this file on every invocation to know the project's shape.”
Worked example
A platform team at Opalwood Labs maintains a DX Project with two package directories - force-app (the main product) and force-common (shared utilities used by several apps). Their sfdx-project.json lists both directories in packageDirectories, names force-common as the default package, and declares a 2GP dependency on a managed package that provides common types. When they run "sf project deploy start" against a sandbox, the CLI parses sfdx-project.json, deploys force-common first (because force-app depends on it), then force-app - a deterministic order the manifest's package declarations encoded.
Why Project Manifest matters
In Salesforce DX, the Project Manifest is the sfdx-project.json file that defines project configuration including package directories, namespace, API version, and dependency information for the development project. The manifest tells the Salesforce CLI how to interpret the project structure and provides the metadata needed for build and deployment operations.
The sfdx-project.json file is required for any DX project; without it, the Salesforce CLI doesn't know how to work with the directory. The configuration includes package directories (where source files live), default package, namespace (for managed packages), API version, and source API version. Mature teams maintain the manifest carefully as part of project setup, with conventions for how packages and directories are organized.
How organizations use Project Manifest
Maintains sfdx-project.json with clear package directory structure for their managed package development.
Uses project manifests to define API versions and namespaces for their multi-package projects.
Treats sfdx-project.json maintenance as part of project setup discipline.
Trust & references
Straight from the source - Salesforce's reference material on Project Manifest.
- Salesforce DX Developer GuideSalesforce Developers
Test your knowledge
Q1. What is the Project Manifest in Salesforce DX?
Q2. What does the manifest define?
Q3. Is the manifest required?
Discussion
Loading discussion…