A web application utilizes web technologies like HTML, CSS, and JavaScript to create an application experience within a browser. Web applications allow for separation of the application from its resources, only requesting needed data to work offline. This future proofs the application because the application and its resources can be altered separately. Technologies like HTML5, AngularJS, and smart views allow developers to build rich experiences across different devices by dynamically switching templates and views based on factors like device size and user type.