Let's start with origins of these frameworks. They were created to address an issue of managing large scale JavaScript projects. As the frameworks got optimized, simplified, and improved they proved to be very good for smaller scale projects as well, with ability scale into a large scale application. Let's take an example of start-up with a need for a simple landing page. It does matter much if you use a framework or not, matter of preference and your proficiency. Another months later, more developers join in, more features introduced like accounts, billing management, acquisition flow, support pages and more. So, if you started with Vanilla JS, how maintainable is it? And if you were using a framework? There is clean, maintain JavaScript code out there, but it requires developers with similar understanding and styling preferences to keep it so. While a framework is opinionated, has certain ways of achieving things. That is one of the reasons why frameworks have become a default choice for many. Other reasons, simplicity, wide community support, hype, support from a large organisation, and fun.