Here is a suggestion for a new way to JS, I'd love to hear your thoughts about it.
The idea is to make code state and execution client/server agnostic while the protocol sync stuff in the background.
for example, lets say there's a table view shown to the client but viewing some table columns require special privileges.
this code is pre-compiled to create one server side module and one client side module:
/////////////
@db-persistent-per-user
let columns=[]
@server-side-only
function addColumn(name){//make sure we have the priviliges}
function agnosticUtilityFunction {...addColumn()...}//can be called from both client/server
///////////////////////////
The framework/protocol abstracts away all network usage and provides the client with some synchronized flux-like state and actions.
This could provide isomorphic rendering out of the box and easily bind data to server
It could also provide a lot more like: caching, offline buffering, synchronization error fallback strategies...
I know Meteor does some of this but this framework should not limit your stack