To build the best possible JS RIA, we need to build a data or model layer. This needs to be handled in a way which goes beyond simply embedding the data in the HTML, and also beyond relying on simple collections of hashes and arrays.
A web server needs to send data to the client, as part of an initial "platform" which the client can build up the UI and behaviour from. A client therefore holds onto and manages this snapshot of "state" which it has received from the server.
The lifecycle of these data objects need to be managed on the client end, persisting the state (when necessary) as part of the process. A "state manager" needs to work with collections of objects, which can be manipulated locally and bound to the UI.
js-model is our solution to this. It should feel straightforward and familiar to you - particularly if you're used to ActiveRecord and its ilk.

