So, the one big atom solved two problems for me.<p>First, in Reagent&#x2F;FRP, I was updating a view based on the value of an atom. This meant I had different default values in different atoms. The big atom let me unify where I stored values, and reuse values, without a performance hit. Second, the big atom made storing application state trivial: you can just throw the map&#x2F;record in Redis or something.<p>However, the big atom is just a big map, and keys can be paired with any value, so it is not enforcing types. From a Haskell perspective (where I understand the program almost falls out of the types you define!), this probably does increase the scope for error.<p>This can be mitigated with Schema (which I never used effectively), logging changes to the console, and being able to see your default map easily (like, there&#x27;s a map in one file which I load upfront, so I can see what values are there).<p>I&#x27;d welcome hearing from anyone with a more advanced or precise use of re-frame state.