In this talk, we're going to explore the evolution of making a SPA with React. We're going to start with React's built-in setState, how it is complicated to maintain at scale, especially when it comes to sharing state and fetching data. External state management apps like Redux and MobX can definitely help with this problem, especially when the data is fetched from a REST endpoint. We're going to spend most of the time on the main point: Now that we're using GraphQL to take care of data management, is an external state management library even needed? Can Apollo coexist with Redux or MobX? What about server-side rendering and Next.js? What are the pros and cons of each combination? We'll find out what's the best way to approach this in 2017.