Have you paid attention to Derbyjs? This one although not yet beta, is quite exciting. It is being authored by an ex google employee and the author of everyauth. You will have to write minimal client side javascript with this one. See the excerpts taken from the official page:
Why not use Rails and Backbone? Derby represents a new breed of
application frameworks, which we believe will replace currently
popular libraries like Rails and Backbone.
Adding dynamic features to apps written with Rails, Django, and other
server-side frameworks tends to produce a tangled mess. Server code
renders various initial states while jQuery selectors and callbacks
desperately attempt to make sense of the DOM and user events. Adding
new features typically involves changing both server and client code,
often in different languages.
Many developers now include a client MVC framework like Backbone to
better structure client code. A few have started to use declarative
model-view binding libraries, such as Knockout and Angular, to reduce
boilerplate DOM manipulation and event bindings. These are great
concepts, and adding some structure certainly improves client code.
However, they still lead to duplicating rendering code and manually
synchronizing changes in increasingly complex server and client code
bases. Not only that, each of these pieces must be manually wired
together and packaged for the client.
Derby radically simplifies this process of adding dynamic
interactions. It runs the same code in servers and browsers, and it
syncs data automatically. Derby takes care of template rendering,
packaging, and model-view bindings out of the box. Since all features
are designed to work together, no code duplication and glue code are
needed. Derby equips developers for a future when all data in all apps
are realtime.
Flexibility without the glue code Derby eliminates the tedium of
wiring together a server, server templating engine, CSS compiler,
script packager, minifier, client MVC framework, client JavaScript
library, client templating and/or bindings engine, client history
library, realtime transport, ORM, and database. It elminates the
complexity of keeping state synchronized among models and views,
clients and servers, multiple windows, multiple users, and models and
databases.
At the same time, it plays well with others. Derby is built on top of
popular libraries, including Node.js, Express, Socket.IO, Browserify,
Stylus, UglifyJS, MongoDB, and soon other popular databases and
datastores. These libraries can also be used directly. The data
synchronization layer, Racer, can be used separately. Other client
libraries, such as jQuery, and other Node.js modules from npm work
just as well along with Derby.
When following the default file structure, templates, styles, and
scripts are automatically packaged and included in the appropriate
pages. In addition, Derby can be used via a dynamic API, as seen in
the simple example above.
But it also comes with following disclaimer
Derby and Racer are alpha software. While Derby should work well
enough for prototyping and weekend projects, it is still undergoing
major development. APIs are subject to change.
It doesn't yet have an authorization implementation and is fraught with security issues, although they will be taken care of in months to come. If you can wait for a few months this seems to be a promising framework.