Dev, staging, production set-up

So I’ve released the first iteration of a web app. I have a handful of users, but I need to add a bunch of functionality. To do that I need to set up a dev environment and possibly staging as well. Has anyone seen any best practices for how to do that in a way that’s not excessively technical?

You can duplicate your platform to work safely.
First, rename both versions to avoid confusion — for example: Platform1_dev and Platform1_prod.

Use the _dev version to add new features and perform all your tests.
Once everything is working properly, open the Git panel (on the right side) and sync it with the _prod version.

Then, open _prod again and make sure everything looks good and error-free.
Finally, run the following command:

git push -u origin main

And voilà — the magic happens, and happiness reigns! :grinning_face_with_smiling_eyes:

I’m not sure what you mean by “duplicate your platform”. I don’t think there is a way to duplicate a project, so you need to create a new one and pull the latest version from Github, which is fine, but that doesn’t solve the Firestore part. I rely on Firestore to persist data and I will be making changes to the database, so I can’t be working off the production instance.

You can duplicate the whole project in the firebase dashboard. Look at the 3 dots to the right of your project name. One of the menu choices is duplicate your project. But it is really dumb in that it tried to automatically launch the new duplicated project. On the other hand, what to do about the database, I am sure there is a way to copy the production one. But then there is all of the user authentication stuff too. I am not quit to your level yet as I am still purely developing. But very soon I will be there. One thing I have done before with my firebase project, is when I have hit a snag, I have actually asked chatGPT how to solve my issue. That has worked every time. I am sure you can get a solid process there.

I’m using different feature branches with CI/CD. I check out the code and run the project locally during development, with Firebase backend. Once I’m done, I raise PR and merge my code. Mergin trigggers the automation to publish new version making it available to my users.