I am planning to change some part of the stack of solsort.com, these are the changes that I am looking into:
Database: it currently use a wrapper on top of LevelDB on node, and on top of IndexedDB inside the browser. This gives very good performance, – and works well for the current solutions, – but it is just a simple key-value store. This scales well for mostly-static data, but for more features and better sync/replication the plan is to migrate to PouchDB, and later probably CouchBase on the backend.
Communication: it uses an Erlang-inspired message passing system between processes, – and also as the building block for RPC between client and server. The vision was that the clients and server(s) should work together as a truly distributed platform. This is overkill at the moment, adds too much complexity, and will be simplified to a client/server-model.
HTML rendering: is currently done through a hiccup/reagent-like library directly on top of react. It will be migrated to reagent, which is a better choice, after the decision, that it does not need to be a distributed platform where markup generation and rendering could happen in different processes.