This document provides an overview of key concepts in single page applications including client-side templates using expressions like {{ }}, model-view-controller architecture with clear separation of data, logic and presentation, two-way data binding between model and view, dependency injection to pass dependencies to classes, and directives that extend HTML's template abilities. The model-view-controller pattern has the view as the DOM, controllers as JavaScript classes that update the model, and the model storing data in object properties that notifies the view of changes.