SFDX Project Template

Use Case

Initialize a maintainable Salesforce DX repository with predictable folder layout, scratch org config, and baseline automation.

my-project/
  force-app/
    main/default/
  config/
    project-scratch-def.json
    project-scratch-def-ci.json
  scripts/
    org-init.sh
    org-push.sh
  .github/workflows/
    ci.yml
  sfdx-project.json

Template: sfdx-project.json

{
  "packageDirectories": [
    {
      "path": "force-app",
      "default": true
    }
  ],
  "name": "my-project",
  "namespace": "",
  "sfdcLoginUrl": "https://login.salesforce.com",
  "sourceApiVersion": "60.0"
}

Template: config/project-scratch-def.json

{
  "orgName": "My Company",
  "edition": "Enterprise",
  "features": ["EnableSetPasswordInApi"],
  "settings": {
    "lightningExperienceSettings": {
      "enableS1DesktopEnabled": true
    }
  }
}

Common CLI Workflow

# Create project
sf project generate --name my-project
cd my-project

# Create and set default scratch org
sf org create scratch --definition-file config/project-scratch-def.json --set-default --alias dev

# Push metadata and assign permissions
sf project deploy start
sf org assign permset --name App_User

# Open org
sf org open

Guardrails