I want to implement true trunk-based development where every push to main automatically progresses through multiple environments: dev → beta → staging → production.
Vercel's native model seems designed around branch-per-environment (e.g., main = prod, staging branch = staging), which doesn't fit this workflow.
What I'm looking for:
-
Single
mainbranch as the source of truth -
Automated progressive deployment through multiple environments
-
Each environment gets the same build artifact
Potential approach: Create separate Vercel projects (myapp-dev, myapp-beta, myapp-staging, myapp-prod) and orchestrate deployments via CI/CD (GitHub Actions, etc.) to deploy the same build to each project sequentially.
Questions:
-
Is this the standard workaround, or is there a better way?
-
Has anyone gotten Vercel's promotion/alias features to work for this use case?
-
Should I be using a different platform entirely for trunk-based CD?
Would love to hear how others have solved this!
