A web application framework with Model-View-Intent and Virtual DOM