I’ve seen teams use a few different approaches.
Instead of sending all commits to main straight to production, you can stage and promote to production when you’re ready to publicly release the change.
A lot of teams just use branches for feature development a previews before merging to main when the feature is safe to include and deploy to production.
Some people use Vercel CLI with GitHub Actions to build a custom release workflow.
Dom wrote a quick-reference guide about the pros and cons of trunk-based development and gitflow. I’m not sure this is exactly relevant to you, but I’m including it in case it helps anyone else joining this conversation.