I have been building and refining a large React.js based application over the past couple years for the open source Storyteller 3 project (http://storyteller.github.io). From crude beginnings with early React.js and a homegrown Flux-like architecture to the latest version and Redux, I’ve learned a lot about structuring and testing reactive clients based on React.js’s ideas of uni-directional flow and component composition. In this talk I’ll show how I’ve been able to use Redux to drastically simplify state management across various parts of the application. I’ll also talk about the technical challenges I faced while trying to integrate the React.js UI with a rapid stream of events coming from the server through Web Sockets. I’ll talk about composing state changes to the underlying Redux store with Immutable.js and the efforts I had to go through to eliminate unnecessary screen component refreshes in order to make a responsive application. Finally, I’d like to show how the integration with Redux can make your application much more efficient for automated testing of your client.