State of the art frontend technology
August 30, 2019

State of the art frontend technology

Anonymous | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with React

Many teams in our organization are using React for both our web properties and several mobile apps (using React Native). It is the default client-side framework and mobile app stack for any new work as well. This lets engineers easily collaborate between different projects and also share components.
  • Lots of compatible libraries and tools
  • Fantastic developer experience and mental model
  • Easy to layer abstractions and compose large pages from small components
  • Without using tools like Gatsby or Next, React encourages large client-side bundles with no content available immediately.
  • Usually, you need to put together your own "framework" from other tools since React is just the view layer.
  • React Native is still maturing, though there is a lot of activity on that project latey.
  • It has made hiring easy, as React developers are plentiful since it's a very popular technology.
  • It has sped up development simply by virtue of being an excellent programming tool.
  • It has standardized the way our organization shares components between teams.
There are a few things that may take some getting used to when coming to a modern JS frontend. Tools like Babel and Webpack (or abstractions that hide their details from you) are often a starting point and JSX can be confusing at first. But assuming the developer is already familiar with modern frontend tools, React is a very natural fit and makes creating user interfaces a joy.
Since it's open-source and very popular, the community support for React and related tools and libraries is excellent. There are a lot of people using the same tools, and so issues tend to get fixed quickly and "recipes" are easy to come by. And since it's backed by Facebook, they have a dedicated engineering team working on the progression of React.
I have also used Vue, Angular, and Ember for various projects. Out of the three, I am most intrigued by Vue. It takes a more beginner-friendly approach than React and changes some of the abstractions it uses to be more transparent to the user. It also comes with a lot more "built-in" than React. Angular is similar, but I've found it over-engineered and hard to work with. I have the least experience with Ember out of all of these, but it seems like another reasonable alternative with very strong conventions in place and an excellent CLI.
React is great for very interactive experiences like search filters, dynamic forms, graphs and charts, and anything else where immediate interaction vastly improves the user experience. For very simple content that could be server-rendered and there are existing rails (or similar) backend in place, that can often be a better choice. But the advantages of a static React frontend are easy cachability on a CDN, pre-rendered content with tools like Gatsby, and easy deployment to platforms like Netlify or Amazon S3. React Native is also a fantastic tool for creating cross-platform applications that need to run on both iOS and Android.