# Remote config & flags

A step of the [Cloud application](https://gradus.kazet.blog/tree/cloud-application) tree on Gradus, in the Build & ship area: Config, lint, releases, IaC.

Page: https://gradus.kazet.blog/tree/cloud-application/step/remote-config

Change behaviour without a deploy: one typed list of flags in code with safe defaults, values held in the cloud's config service and a removal date on each.

Usually comes after: [Product analytics](https://gradus.kazet.blog/tree/cloud-application/step/product-analytics).

Leads to: [Pick the next feature](https://gradus.kazet.blog/tree/cloud-application/step/pick-next-feature).

## Prompt for your AI assistant

```
Read the cloud provider decision record in docs/decisions and the config module. Recommend where runtime values live: Firebase Remote Config on Google Cloud, AWS AppConfig on AWS or a table in this product's database if that is simpler here. Stop for my pick and write the next docs/decisions record. Add one typed registry in code that lists every flag with its default, an owner and a removal date. Read values on the server, cached and with a timeout, so the product keeps working on the defaults when the service cannot be reached. Support on or off for everyone, for one user or for a list of users, and no percentages: at this traffic a percentage tells us nothing. Send the browser only the flags it needs and never a secret. Add a CI check that fails on a flag past its removal date. Then prove it: turn off one small real thing without a deploy, watch it stop, turn it back on and write in docs/ how long a change took to reach the product.
```

Every step of the tree: https://gradus.kazet.blog/tree/cloud-application/llms.txt
