Well this is my opinion.
I always thought CouchDB offers a great RESTful interface to communicate with their database. CouchDB also offers great multi-master replication, this also includes your local data.
There is a JavaScript implementation of CouchDB's data sync called PouchDB. I always thought it would be a great idea to just use CouchDB as your API layer. Anything your backend needs to do goes through Couch first and get synced to the client through Pouch.
I haven't experimented on the idea yet, but maybe you can take it further.