Mozilla localForage
github.com
github.com
In other words, make local storage, IndexDB, etc., the primary persistence layer. Then, at checkpoints, sync the whole MFing deal to the server (kind of like database checkpoints). From what I can tell this isn't a concept that's been explored by the community of dedicated front-end devs (of which I am decidedly not a member). However, I feel like it would be pretty awesome.
We haven't figured it out yet and have essentially thrown in the towel, settling for an ad hoc, informally-specified, bug-ridden, slow implementation of half of a "real" database in the name of "getting offline to work".
edit: If someone reading this eventually does get this figured out, and easy, please for the love of god let me know. My email address is in my profile.
Of course if you use Meteor as intended with the large data on the server and only what is required for the active view on the client, minimongo is just fine
In other words, the client should still be decoupled from the server. But PouchDB looks like it has the right idea on the client.
edit: I realize I Just kind of described an ORM. Sorry.
As a backend dev who occasionally has to write some frontend stuff, this looks intriguing to me. Anything that lets me think less about the zoo that is the varied state of browser implementations is great.
K/V storage is nice, but once you have more than a few thousand objects that you want to index, it's a little bit painful.