JavaScript Frontend Framework CLI Showdown

Many modern JavaScript frontend frameworks are complemented by a standalone Command Line Interface (CLI) program that assists with setting up a suitable development environment. Since many developers who work with Stream also use one or more of these frameworks, we like to stay up to date. We’re also happy to pass on what we’ve learned. This post offers both rookie and veteran developers a breakdown and comparison of the CLI programs available for Angular, React, and Vue. The aim is to help new developers understand the benefits and tradeoffs associated with using a CLI tool as opposed to setting up the associated tooling from scratch. Experienced developers will appreciate a quick, yet thorough and independent comparison to refer to. This isn’t a benchmark and there isn’t a winner announced; as with most tools, it is a case of “horses for courses."


What Are the Hurdles in Web Dev?

To gather insights on the state of web application development today, we spoke with 12 executives who are familiar with the current state of the industry and asked them, “What are the most common hurdles you see affecting the development of web applications?" Here’s what they told us:

There’s an impedance mismatch between developers, DevOps, and SecOps. Testing is still being done manually. This causes the chasm to widen. There is cultural inertia that’s made worse by the acceleration of technology development.
Speed to market bogged down by how hard it is to release software. We used to have outages for releases but now with 24/7 uptime, we must make releases trivial without interrupting users. Companies need to adopt a DevOps culture where they ship less and ship less risk. Only a few features go into each release. Ship quickly and small.
Environment management is a constant struggle in web application development. Most developers have unique ways of modifying their computer to facilitate the type of development they do. Custom development environments are great when it is a single developer on a small application, but they seldom translate to a smooth transition between developers or upstream to hosting and QA environments. Lost time due to added complexity in managing environments creates inefficiencies that lead to higher cost, lower job satisfaction, and degraded quality.

Legacy Systems

The need to modernize legacy systems. Keep up with what’s going on so you don’t isolate the employees. Provide something employees can work with. Help lead them to modern development and technology. 
Legacy systems don’t want to consider security, passwords, international standards because they don’t think they are relevant for their app at this time. They are taking a narrow view and their app will not scale. We try to help them see what the big picture looks like. For example, we provide support for Linux. While a company may not be using Linux today, there’s a high likelihood they will in the future. 
The most common problems we see are creating beautiful UIs, integrating with enterprise business processes and web services, and finding enough skilled developers to do the work. Our low-code platform is purpose-built to solve these challenges.


Design for clients where their UX is across multiple modalities (travel websites, Concur expense reports). Providing a seamless experience across form factors is extremely difficult to execute well. 
All of the stuff around tooling. We see many problems getting apps configured and built. Developers are good at API and app development but the tooling has changed so much developers don’t realize all the new tooling there is to get to React or the correct version of the node. They don’t know the version of JavaScript they are transpiling to. 
No longer self-contained. You don’t know which browser, you can’t control updates of browsers, operating systems, devices changing can all affect UX. Microservices on the backend can affect the front end. That’s why we do continuous testing and monitoring. 
Complexity. How many versions of clients (operating systems, browsers) are you supporting? How many versions of your APIs? How do you get your application deployed most broadly? How to scale effectively with regards to performance, resilience, and reliability. How to foster effective communication? How to overcome challenges – often cultural? New communications and openness. Be data driven. Observe how systems are being used in a transparent way. Provide insights into the architecture and how the code is interacting. Think about the performance of all communications. Make sure everyone is aware of what is going on and how the system is performing. Be able to see what flows users are using.


Bad technology choices early on can easily lead to a complete re-work of the application.