An Org Shape is a snapshot of a production org's edition, features, settings, and limits, used to spin up scratch orgs that match production capabilities.
Without org shapes: scratch orgs are configured from project-scratch-def.json — a manually curated list of features ("Communities, Multicurrency, etc."). For complex orgs, drift between the config and reality grows.
With org shapes: capture the production org's actual configuration as a shape. Scratch orgs created from the shape inherit features automatically.
Workflow:
- Enable Org Shape in production org (Setup -> Dev Hub -> Enable Org Shape).
- Create the shape:
sf org create shape -o myProdOrg. - Create scratch org from shape: include
"sourceOrg": "00DXXXXX"in the scratch def file. Scratch is created with the shape's features.
Why useful:
- Realistic dev environments — scratch orgs that actually mirror production.
- Feature drift detection — if production adds a feature, the shape reflects it.
- Onboarding — new devs get scratch orgs that "just work" without the config-file maintenance burden.
Limitations:
- Shape captures features, not data. You still load test data separately.
- Shape captures shape, not custom code/metadata. You still deploy your source.
- Some features can't be replicated in scratch orgs regardless of shape.
Shape vs Snapshot:
- Org Shape — features only. Lightweight.
- Org Snapshot (newer) — full org template including data. Heavier.
Modern teams use shapes/snapshots to reduce "works on my org" failures during PR validation.
