This document discusses building single page applications (SPAs) using JavaScript and the MVVM pattern. It introduces the Model-View-View-Model (MVVM) pattern, which emerged to support data binding in WPF. MVVM enables developer/designer collaboration, testable code, and code maintainability. KnockoutJS is an open source library that implements data binding and observables to support the MVVM pattern in JavaScript SPAs. The document demonstrates creating a basic SPA using KnockoutJS, including defining a view model, bindings, and observables to update the view dynamically. Resources for further information on building SPAs with Knockout and MVC are also provided.