Knockout
Tool to create rich, responsive UIs with JavaScript
Easily associate DOM elements with model data using a concise, readable syntax. When your data model's state changes, your UI updates automatically. Implicitly set up chains of relationships between model data, to transform and combine it. Quickly generate sophisticated, nested UIs as a function of your model data. Get started with knockout.js quickly, learning to build single-page applications, custom bindings and more with interactive tutorials. Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses observers to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of declarative bindings to enable productive development. For Node.js developers, Knockout is also available from npm.