The SaaS best practices post recommends trunk-based development with feature flags, since SaaS only gives you one deployment stream (QA → UAT → STG → PROD) and you can't test different features in parallel environments.
I'm curious how other agencies are handling this in practice:
- Are you actually doing trunk-based development with feature flags? If so, how are you implementing the flags? appsettings.Qa.json, IsQa(), Microsoft.FeatureManagement, or something custom inside Xperience?
- Or are you sticking with Gitflow or release branches and controlling what reaches QA by when you merge?
- What do you do when QA is "blocked" by an unfinished feature and a fix needs to go out? Emergency deployments? Reverting?
- How do you handle database changes? Flags can hide code, but content types and reusable field schemas in the CD package still get promoted. Additive-only changes? Scoping repository.config per release?
- Admin UI customisations: has anyone gated custom apps or UI pages by environment?
We've used a combination of approaches with SaaS - but really want to explore what others are using?
Tags:
CI/CD
SaaS