Builders: The podcast where we discuss the ups and downs of building great tech products Stream here

Which single-page app framework to choose?

Photo by Glenn Carstens-Peters on Unsplash

Frontend technologies evolve fast. New frameworks for SPAs emerge every half a year promising to revolutionize the UI world. If you check Wikipedia you’ll find about 25 JS frameworks and over 80 JS libraries aiming to simplify different aspects of the frontend development.

Anyway, when choosing the best SPA framework in 2021, you’ll most probably consider the three alternatives: Angular vs Vue vs React. The popularity of all three projects is growing. All three get updated frequently, are used and supported by big corporations, and have use cases where each outshines others.

So, which is better: Vue, React, or Angular? It depends on how their philosophies, advantages, and limitations can potentially influence your particular product.

We asked Andrey, Fullstack Developer on Proxify, who has worked with all three SPA JavaScript frameworks, about the specifics of implementation of Angular and its alternatives. Hopefully our SPA framework comparison guide will help you make an informed choice.

Angular vs React vs Vue project maturity

When it comes to choosing a JavaScript framework, one of the first considerations is the maturity and ecosystem of every particular technology. The stronger is the community behind it and the more solid companies use it, the lower is the risk for it to get abandoned and outdated.

StackOverflow Developer Survey Results show the percentage of developers using different web frameworks and libraries in 2019.

Most used web framework/library in 2019

We can use those stats to make our single-page application framework comparison. While React and Angular are fighting for the title of the most used web framework or library for SPAs, Vue has already proved to be the fastest-growing in popularity. Vue is being starred 177k times on GitHub and downloaded from nmp more than 2 million times per week.

Origins and longevity

Angular (or Angular 2+) JavasScript Framework was released by Google in 2016. It’s the second upgraded and significantly rewritten version of its predecessor AngularJS that was created in 2010. This framework is used and maintained by Google and it’s partners.

React JavasScript Library was initially developed by Jordan Walke, a software engineer at Facebook, for the company’s internal needs. It was open-sourced in 2013, still, Facebook employees remain the main contributors to its repositories. TheFacebook web app as well as web versions of Instagram and WhatsApp are built using this framework.

Vue JavasScript Framework was created in 2014 by Evan You, who previously had worked at Google. Now, it is a community-driven open-source framework that doesn’t have any large companies contributing to its repositories. Anyway, there are several big corporations and unicorn startups that rely on it in developing their interfaces, for example, Alibaba, Baidu, Grammarly, and GitLab.

Being backed up by large corporations Angular and React have got more widespread in the JavaScript community than Vue. The participation of tech giants in their maintenance serves as a guarantee for the longevity of those projects. That said, Vue managed to compete with them despite being a young standalone project, which proves it has great potential.

Maintenance and stability

Angular has a regular release schedule that eases keeping pace with the framework evolution. Major updates that require running update scripts, code refactoring, additional testing, and learning new APIs are released semiannually. Each version of Angular receives 6 months of active support with updates or patches released weekly. After that, it has 16 months of long-term support for critical and security fixes. For each new version, the Angular team provides the migration path to make those upgrades easier on software maintenance specialists.

The latest version is Angular 11.0.0. It was released on 11.11.2020 and has active support until 11.05.2021. The long-term support of this version will last till 11.05.2022.

React versions get released with a time gap of 1.5–3 years because the React team strives to minimize braking changes and ease the versioning pain on developers. All new features are pushed in minor releases. The team provides a migration path for a smooth transition to new versions, writes automated scripts to upgrade component syntax, and keeps the old API working for as long as possible.

The latest version is React 17. It was released in October 2020.

Vue has released 3 major versions so far and keeps them maintainable. The team worked on the third version for two years and actively engaged their community in the development process. Due to the specifics of the development process, it takes the team some additional time to stabilize new versions, update third-party libraries, as well as provide migration builds for a transition between versions.

The latest stable version of Vue is v2.6.11. It was released on 13.12.2019. The latest version is v3.0.0. It was released on 18.09.2020, however many sub-projects remain in beta.

All three projects have been developed actively during the last several years. That said, each project has its own approach to versioning and support. Where the Angular team commits to a predictable release schedule, the React team provides a system of warnings to let you upgrade your apps one component at a time. Being a community-driven project, Vue remains less predictable in terms of new version releases and maintenance policies.

React vs Angular vs Vue implementation

When choosing between Angular and its alternatives, you should decide how much freedom and ownership over the development process you’d like to have. It also will pre-define who you’ll have on your team.

Development consistency and flexibility

Angular is a fully-fledged framework that doesn’t rely on third-party tools and libraries. It’s often a choice for conservative corporate environments that prefer security and standardization over flexibility. Angular pre-defines the way you architect your app and allows you to benefit from TypeScript language with its type checking feature. Choosing this framework is especially reasonable if you’re going to maintain and manage a huge codebase that needs to be neat and consistent.

React is a JS library that requires you to augment it with additional tools to build a complete development framework for your project. React has millions of components, goes with the largest ecosystem of companion libraries, module bundlers, code compilers, and relies a lot on the npm JavaScript package manager. It leverages Virtual DOM (reconciliation algorithm) to speed up rendering and JSX (JS syntax extension) to produce React elements that unite markup with rendering logic. Knowing about the availability of reusable code packages and popularity among developers, startups that want to speed up development cycles often choose React. Doing so they expect to find JavaScript developers quickly and cut development costs.

“I’d say that moving from one project to another is not that smooth for React developers as startups expect. The approaches for components interaction and state management in different versions of React varies significantly. For example, adding the possibility to use hooks API in React 16.8.0 and above was a huge change. Such versatility of code architectures may cause developers to spend quite some time getting acquainted with the specifics of every next project. In some cases, their learning curve may be steeper than for Angular developers dealing with a new version of the framework.” – Andrey, Fullstack Developer

Vue is positioned as a progressive framework, which means it's been designed to be easily integrated with the existing projects. You don’t necessarily need to build your whole app with Vue. Instead, you can plug Vue into one part of your app or implement just some part of its functionality. Vue uses HTML-based templates and is written in JavaScript, however it allows using both TypeScript and JSX with it. Similar to React it has a core library of components, leverages a Virtual DOM, and delegates routing and global state management to companion libraries. Vue is the simplest framework in terms of API and design and doesn’t imply any restrictions to organizing the code of your app.

“The beauty of Vue.js is that you can add it to a project that even isn’t a SPA. I had successfully integrated Vue into a jQuery-based project that had its HTML rendered server-side. It was quite easy for me to add Vue to a container inside the HTML page and make it interact with the existing scripts.”– Andrey, Fullstack Developer

Let’s summarise. Angular provides you with out-of-the-box functionality and implies that there’s only one right way to build and structure your app. In contrast, the Angular alternatives both are much more flexible and allow you to combine a lot of tools and libraries to construct your custom tech stack, escape a vendor lock-in, and innovate.

Development process productivity

In terms of technical performance, none of those JavaScript single-page application frameworks has any significant issues that could stop you from using them. When it comes to runtime and start time speed, all three frameworks perform well, which has been proved by an independent JS web frameworks benchmark research.

Angular, React and Vue, all are aimed to improve the speed and effectiveness of the development process. That said, you should consider your team’s expertise and skills to make sure your project gains in productivity from using a particular solution.

Although the use of any SPA framework or library requires the developers to have a good command of JavaScript, HTML, and CSS each project has its own learning curve. Although Vue and React are considered to be simpler than Angular, they require developers to take more architectural decisions and be able to justify them.

“For startups that want to use Vue and React it’s crucial to work with an experienced developer from the start. The proper implementation of chosen architecture approach in the very beginning will influence the speed of development at later stages. Starting the project without a proper code scaling plan will inevitably result in accumulating technical debt, which will make the future development process cumbersome.” – Andrey, Fullstack Developer

Looking for Vue Angular or React developers?

To build a SPA with a JavaScript framework or library, you need a specialist who is well aware of their ecosystems, advantages, and limitations. If you are looking for an experienced Angular developer, Vue developer or React developer right now, just send us a talent request. After a quick brief on your goals and requirements, we’ll connect you to a perfect candidate from our pool of vetted specialists. With you’ll hire senior JavaScript developers for your project within the next two weeks at rates starting from 29€ / h.

Find your next developer within days, not months

We can help you deliver your product faster with an experienced remote developer. All from €31.90/hour. Only pay if you’re happy with your first week.

In a short 25-minute call, we would like to:

  • Understand your development needs
  • Explain our process to match you with qualified, vetted developers from our network
  • Share next steps to finding the right match, often within less than a week

Not sure where to start?

Let’s have a chat

First developer starts within days. No aggressive sales pitch.