Try Serpent Free
← Salesforce DevOps Glossary

Source Format

Salesforce CLI's folder-per-component layout, organized to work naturally with Git rather than the Metadata API's raw structure.

Definition

Source format is the file layout Salesforce CLI expects in a force-app directory: metadata organized by type and further split so each component (an object, a flow, an Apex class and its metadata file) is its own file or small folder, matching how Git diffs and reviews changes best. It's defined by sfdx-project.json at the project root, which declares one or more package directories in this layout. Source format is what makes commands like sf project retrieve start and sf project deploy start usable without a hand-written manifest, since the CLI can infer scope from which files changed. Nearly all modern Salesforce tooling, VS Code extensions, scratch orgs, 2GP packaging, assumes source format as the default. See our Salesforce CLI guide for how source format fits into everyday CLI use.

In practice

How it works in Serpent

Serpent reads and writes source-format metadata natively through its VS Code extension and task workflow, so a developer's local project structure never has to change to work with Serpent. Every task's changes are scoped down to the individual source-format files touched, which is also what makes Serpent's automatic manifest generation and delta deployments possible. See the Serpent VS Code extension for how local source-format work syncs with tasks.

Git integration settings in Serpent
Common questions

Source Format, answered

Do I need to reorganize my project to use Serpent?
No. Serpent works with a standard source-format force-app project as-is; there's no separate layout to adopt.

Start free. No credit card, no install, no commitment.

Set up in under 15 minutes. No DevOps hire needed.

Curious about faster shipping before you dive in? Let's talk

Commitment free!