During the last two+ years, our team at Dashboquuet Development has worked on great variety of projects, including the ones on Angular, Angular2 and React. Almost all of them have gone to the production. Modern front-end development assumes the use of enormous libraries, like AngularJS (either first or second version), React and many others. Each has its pros and cons and you can never tell which one is better unless you use both. We want to share with you our experience, which is based on the past 3-year practice in front-end development. Because at DashBouquet we mostly use Angular and React, we will have a look at these frameworks. We’ve started with Angular few years back and since then we have completed more than 50 projects that differed in tech stack and size. Because we are commercial developers, we are eager to constantly improve our productivity and deliver best results in the shortest time possible. Thus, it was crucial for us to quickly adopt best tools and practices and quickly recognize which ones are worth getting rid of. Angular is more popular among developers than other frameworks and this is a big advantage, because it means the framework will be more convenient to work with. Moreover, its popularity is not our hypothesis, but the fact proved by Google Trends (we will discuss it in our next blog post). Dozens of Angular projects left us with the feeling that it’s a perfect tool for quick UI solutions and for something not very complex. Speaking about apps with complicated business logic, our first choice would be React + Redux. One of the major problems with Angular is that it’s easy to get into side effects. During work, one thing leads to another and the more developers work on the project, the more side effects occur. And when you scale you often lose control over the quality and release process. However, we faced this problem only during our work with Angular. For Angular2 you can resolve it with predictable state containers and immutables, same way as with React. One more issue is called a Monkey/Banana problem. It means that when you want to test how a monkey would handle a banana, you should build the whole jungles for that. In comparison to Angular2, React allows to get more testable components due to developed ecosystem. Of course, it changes within the time. As well, one of the biggest cons of React and Angular2 is that their developers are quite rare, especially good ones. Even though React is a relatively small framework, there are still a lot of things a developer has to care about: state management, server interaction, testing and much more. These are our observations and thoughts that we collected during our 2+-year work processes with these options. At DashBouquet we don’t want to give a biased opinion, and that’s why we frankly say that we stick mostly to React + Redux/Saga. It is a perfect fit for us as we’re focused on big and complex front-end apps.