We are in the midst of a paradigm shift that will dramatically change how many of us build and deploy software. The age of server side UI framework is over since the client side is now powerful and mature. Modern web application architecture moves the UI to the client, where all user interactions are handled on the client-side. All UI state, too, moves to the client-side. The client then just makes calls to the server when it needs to access shared data or communicate with other clients / systems. The client talks to the server through HTTP using a RESTful pattern or possibly the newer WebSockets protocol which allows for bidirectional communication.
I have built a web framework for JAX-RS on top of JSF in the goal to run it in a stateless mode and reuse Facelets , the resource handling and the composite components features:
for more information, read this