In this book, we focused on backend development—that done through Python or Flask. A large part of developing web applications is building a frontend that is powerful, aesthetically pleasing, and intuitive to use. Although we provided a solid grounding in HTML, CSS, and JavaScript, each of these topics is big enough for its own book, and many such books exist.
JavaScript is perhaps the most important of the three. Known as the "language of the web", it has gained steadily in popularity over the last few years (although, as with all languages, it has its fair share of critics). There are many frameworks for building JavaScript-intensive web applications (so many, in fact, that their sheer number and the frequency of new ones being released has become a topic of humor among developers). We introduced Bootstrap in this book, which includes basic JavaScript components, but for more heavily interactive applications, there exist larger frameworks. Three of the more popular frontend frameworks include AngularJS (built by Google), React.js (built by Facebook), and Ember.js (sponsored by a variety of corporations, including Yahoo!). Learning any of these frameworks or one of the many others will definitely help you build larger and more complicated web applications with richer frontends.
JavaScript is also no longer limited to the frontend, and many modern web applications are built using JavaScript on the server side as well. A common way to achieve this is through Node.js, which could have fully replaced Python and Flask in any of the projects we built.
HTML5 and CSS3 have grown far more powerful than the older technologies they evolved from. Earlier, there was a clear division of labor, with HTML for content, CSS for styling, and JavaScript for actions. Now, there is far more overlap between the capabilities of the three technologies, and some impressive and interactive applications are built using only HTML5 and CSS3 without the normal addition of JavaScript.