Hosting and development environments (Vercel)
It was inevitable I would arrive at this point in my journey. I have a paying client who wants a Web app with a booking and calendaring service. This throws my erstwhile development practices into turmoil. Currently, I dev on my local computer and push changes to prod via my git commits, with Vercel reading the pushes. This works well and is acceptable for what I have done up until now. Now, I need to have multiple environments in which to carry out this work. 1. Local dev environment (It's the Wild West here): This is the Development environment to get features up and running, fix bugs, and fix visual anomalies. Git is committed to a Dev branch. A git push moves it to Staging. 2. Staging EnvironmentโThe customer uses this environment to sign off on changes and feature additions before they are made available on the Production environment. Staging environment updates are made by merging Dev branch commits and performing a git push. 3. Production Environment - This is the online business application. Nothing should be deployed here until the customer has signed off changes in staging. Production environment updates are created by merging Staging environment commits and carrying out a git push. It seems that I need separate git branches for each of my environments to enable this in Vercel. If someone can tell me otherwise, that would be great. I am trying to work out the workflow so that this will work reliably from my computer. It almost seems like I can push anywhere at any time, which, as an old infrastructure guy, is not what I want. I want to protect Prod at all costs. I think the way to do that is only to accept PRs for code pushes to Prod from Staging and only to accept code pushes from Dev to Staging, not straight to Prod. Dev should never be able to go directly to Prod without going through some quality gate first. Any of you 'proper' dev guys assist me in my ramblings? And just because I'm a visual guy, here's what I was thinking