I'm learning web development and decided to build a few projects with plain JavaScript before moving on to frameworks. I already know some React basics and completed several small tutorial projects, but I haven't yet built anything substantial, such as an e-commerce site, a blog with a database, or a full-stack application. I also have experience with MongoDB, MySQL, and Oracle, and previously built an e-commerce project in PHP, although I'm rusty now.
I understand core JavaScript concepts such as asynchronous operations, objects, modules, and destructuring. My goal is to become comfortable building complete web applications with both front-end and back-end components. I don't particularly enjoy detailed front-end work as long as the application functions correctly, and I'd eventually like to move into machine learning and automation.
Would spending more time building with vanilla JavaScript be valuable, or should I start using frameworks for larger projects now?
4 Answers
Building without a framework is usually slower, but it can teach you a lot about the browser, application structure, state, routing, and the problems frameworks are designed to solve. It’s worthwhile as a learning exercise, especially for a small project. Once you understand those fundamentals, use a framework for larger applications so you can focus on the product instead of rebuilding common infrastructure.
Think about your goal. If you’re learning or experimenting, building something close to scratch can be rewarding and can make a strong portfolio piece. If you need to deliver a real application efficiently, using established tools is normally the sensible choice. Just remember that custom code still needs maintenance, testing, documentation, and security work after the initial build.
For job preparation, don’t stop at vanilla JavaScript. Most professional front-end work uses frameworks, so build at least one meaningful project with React or another widely used option. You’ll learn more by understanding how the framework works internally and why it makes certain choices than by avoiding it completely. A good path would be one small vanilla project, followed by a larger full-stack project using a framework.
Choose based on the size and constraints of the project. A tiny browser tool or extension may not need React at all, while a management system with routing, forms, shared state, authentication, and many views will benefit from a framework and its ecosystem. Learn the fundamentals first, then use the appropriate tool rather than treating either vanilla JavaScript or frameworks as a rule.

The same principle applies to programming as it does to other engineering projects: making something yourself can teach you a lot, but it isn’t automatically the best way to get a reliable result quickly.