The pipeline
Lint and typecheck on PR. Preview URL. Production on main (or a release tag if you want a slower gate). Secrets in the host, not in the repo.
What we skip
A Jenkins museum. A 20-stage enterprise workflow for an app with 40 users. Complexity is added when a failed deploy actually hurts.
Questions
GitLab or GitHub?
Whichever you already use. We default to GitHub Actions because that is where most of our repos live.