Difference between configuration.yaml and .storage/* files?


From what I’ve read up to now, it is advised to use the configuration.yaml (or subsequent files like customize.yaml etc) to perform setup of HA.

Now I’ve found something looking as a shadow copy of the config.yaml, namely .storage/* (core.config_entries.txt, core. device_registry or core.entity_registry) that contain similar data.

If I perform some customisation using the web GUI, this data goes to .storage/* instead of the expected configuration.yaml

So it looks to me as if the .storage/* files would kind of supersede the configuration.yaml. But does this means that if I’ve done once a modification through the GUI, there’s no way to change these settings through configuration.yaml ? Am I then supposed to always use the GUI or edit the .storage/* files directly ? then why use configuration.yaml at all ??

I’m really confused…