1. Redux is a state tree for the application. 2. State is read-only. Any change you make fires an action (javascript object) {type: ACTION_NAME, ...action}. 3. Pure fuctions with no side effects meaning they don't fetch anything, the value that is returned is always the same given the same input. Mindful of pure functions. 4. Reducer function: state mutation functions are pure functions: (state, action) => state How to view and change what's in store? Redux Store methods store.getState(); store.dispatch({type: 'SOME_ACTION', action}); store.getState(); Cb that will be called once an action has been dispatched. Doesn't fire the first time so the intial call won't be logged. store.subscribe(() => { document.body.innerText = store.getStore(); });