This document provides an overview and comparison of single-page application (SPA) frameworks including Angular, Ember, Backbone, and React. It discusses how to choose a framework based on factors like aims, philosophies, learning curve, and implementations of modules. Key differences between frameworks are examined like their approaches to data binding, routing, templating, testability and performance. Emerging technologies on the horizon that may impact frameworks are also covered such as web components, virtual DOM, and ES7 Object.observe().