Information architecture and Flux
It can be difficult to think of user interfaces as information architectures. More often, we get a rough idea of what the UI should look and behave like, and then we'll take a stab at implementing it. I do this all the time, and it's a great way to get the ball rolling, to discover issues with your approach early, and so on. But then I like to take a step back, and picture what's happening without any widgets. Inevitably, what I've built is flawed in terms of how state flows through the various components. This is fine; at least I have something to work with now. I just have to make sure that I address the information architecture before building too much.
Flux is a set of patterns created by Facebook that help developers think about their information architecture in a way that fits naturally in their apps. I'll go over the key concepts of Flux next, and then we can think about applying these ideas to a unified React architecture...