Two hardest things

Naming Cache invalidationComponents force teams to tackle both!

Components add meaning, remove fluff

Components are the new semantic layerfrom <PrimaryButton> to <App> They are easy to change They are easy to delete They are easy to divide up They are easier to debug They represent meaningful concepts

The Component Model

Define your component and the system runs them Initially: runs component from top-to-bottom When user taps: runs top-to-bottom When API request succeeds: runs top-to-bottom When API request fails: runs top-to-bottom When any state changes: runs top-to-bottom