Need advice about which tool to choose?Ask the StackShare community!

Node.js

108.1K
88.8K
+ 1
8.3K
React

98K
77.7K
+ 1
3.8K
Add tool

Node.js vs React: What are the differences?

Developers describe Node.js as "A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications". Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. On the other hand, React is detailed as "A JavaScript library for building user interfaces". Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.

Node.js belongs to "Frameworks (Full Stack)" category of the tech stack, while React can be primarily classified under "Javascript UI Libraries".

"Npm", "Javascript" and "Great libraries" are the key factors why developers consider Node.js; whereas "Components", "Virtual dom" and "Performance" are the primary reasons why React is favored.

Node.js and React are both open source tools. It seems that React with 132K GitHub stars and 24.5K forks on GitHub has more adoption than Node.js with 35.5K GitHub stars and 7.78K GitHub forks.

According to the StackShare community, Node.js has a broader approval, being mentioned in 4104 company stacks & 4042 developers stacks; compared to React, which is listed in 3224 company stacks and 3094 developer stacks.

Advice on Node.js and React
Needs advice
on
React
Node.js
and
Bootstrap

Hello Experts,

I'm trying to build a demo app to show an image, and it's metadata (EXIF data or read relevant image data from XML/DB). I need to display the image and data side-by-side. As a novice web developer, I am trying to understand what tools to pick, so it's easy to develop, maintain, and at the same time, it performs well for a huge volume of images display (something like picture/file gallery). We also want to offer one-click on one file/picture that needs to be shown in a split view. Please advise and let me know if my problem statement is unclear.

Thank you. SSK

See more
Replies (1)
Tarun Batra
Back End Developer at instabox · | 5 upvotes · 11.5K views

Hi Sara,

You need to decide if this is a demo app or an app which you'll want to scale and maintain. For a quick demo, I would spin up a Node.js server with server rendered frontend using Handlebars template. This way, the whole project can be maintained in one repository without much moving parts.

If you are extracting data from image itself and not from a database, you wouldn't even need Node.js. Just a React app will do. Data extraction from image can be done on client side.

See more
Needs advice
on
React
Node.js
and
MongoDB

Hello,

I will be programming my project in the coming months. I would need advice on the technology I will use.

I focus mainly on mobile apps, so it's clear there that it will be a native app written in Kotlin.

I will also need a backend (database, API). In the database, I will need to store words and their translations along with users and some statistics to start with.

I don't know which database to choose, whether NoSQL or SQL. Maybe NoSQL would suffice for some words and key-value data.

I would like to connect the web and a chrome extension to that backend. I assume that chrome extensions are made in JavaScript and I would use either Vue.js, AngularJS, or React on the web. The web would be quite simple, some flashcards, statistics, and so on ... I don't know which framework would be ideal, I've never done it, I'll be basically learning it. Ideally, also where you need as little CSS as possible.

With that backend, I have a dilemma as to which framework to use. Basically, it will be such a new for me, I just played with Flask a little bit, but It doesn't matter. Basically, everything runs on JS except the Android app. So is it advantageous to choose Node.js on the backend? I have no experience with this, is it an advantage when everything runs in almost one language? I also thought about Flask / Django, but I also quite like Node.js since it's in JS. But I'm open to all the possibilities of .NET, Spring .... What would be your choice?

To summarize: Android App - Native app in Kotlin Chrome Extension - JavaScript (I don't know if it can be done in anything else) Web - Vue, Angular or React and that's JavaScript Database - SQL / NoSQL? - I don't know which is more suitable, or some specific types Backend - the dilemma of what language and framework to use

I'll write everything myself, it's a project for school, but I want to move it to a higher level and release it. If it doesn't work out, at least I'll learn something. Thank you for the answers.

See more
Replies (2)

Let's start with the database. First, in my experience, there are few applications where choosing a document database (NoSQL) over a relational database (SQL) is advantageous. While document databases are conceptually very straight forward, I find the tradeoffs down the road are simply not worth it (I wont get into all the details here, but please do some research on the downsides of NoSQL databases). If your data storage needs were exceedingly simple, I might reach for something from the Google Firebase suite, Realtime Database or Cloud Firestore; but I find even simple storage needs tend to expand and grow over time as your application matures. Postgresql is an excellent choice, and an absolute powerhouse for a ton of applications. With the somewhat recent additions of hstore, json, and jsonb datatypes, the advantages of reaching for a pure document datastore melt away.

For the Chrome extension, I would probably favour going for something a bit more lightweight than React or Angular. I'm a huge fan of React, but it comes with a somewhat hefty download, so if it were me, I might reach for Vue instead on that one. React is better for bigger, more complex single-page applications, whereas Vue is probably a better fit for simpler applications which require a smaller set of components.

For the backend, I would pick something mature with a strong and active community. Flask is a nice choice, but I've felt a bit "on my own" when using it in terms of community/documentation. I've used Rails extensively, but the learning curve is a bit of a headache; the time you'll save using Rails is very much down-the-road rather than immediate. If you're comfortable already with Javascript, then node + express is probably your best bet.

But, let me change my tune a little bit. You mentioned that this is a school project. In light of that fact I suggest you gravitate towards languages and frameworks that will help grow your career. Making smart choices based on the requirements of the task at hand is always prudent, but in this case I think it may be more valuable to gain some experience with some of the current "industry standard" stacks. Ask yourself what you can build a career on, and dabble in some of those areas until you find something that clicks for you. So, here are my revised answers, with options for each category ranked in order of preference

  • Database: PostgreSQL, MySQL
  • Backend: Node/Express, Rails, Django, Spring
  • Frontend: React, Angular, Vue
See more
Diego Caravana
Director of Technology at Crowd Emotion Ltd · | 6 upvotes · 9K views

Hi Karin, I really liked your take on this whole school thing, I'm amazed you want to put such a huge effort in it.

And please appreciate your project is a lot to take and it can also be a lot to do: the risk is going beyond the assignment for the sake of exploring technologies, architecture styles, desing patterns, and so on, just for the sake of it (don't take me wrong, I've done it all my life).

So my first advice, as quite an experienced software developer, is always go back to some fundamental principles before starting anything, before thinking to anything, and perhaps the most important principle of all is KISS: Keep It Simple and Short (search it up, there are a few versions of what those letters represent :) ). In your case, since it's a school assignment, simplicity is even more important because it makes things clear which makes learning so much more effective.

When dealing with complex tasks like this, another fundamental element is focus: where should you keep your attention when designing and then developing a software product?

In this specific case, I lack what the original assignment was requesting, but I'm quite sure the point (or one of the points) was to make you think and then act on something that didn't require months to be developed, it was to make you learn how to accomplish a task without getting lost in details or in a project too big to be finished in a finite time.

I may be wrong, but I'll keep this in mind when writing the below lines.

FIrst, the architecture of the software product looks like a classic three tiered one: frontend, backend, database. Keep in mind another fundamental principle here: the separation of concerns, which leads to different decoupled architectural elements. Also, just for clarity, the frontend(s) will talk only with the backend, while the backend will talk with the database: this will help you isolate the database from the frontend, ideally enabling you to change database technology if needed.

Second, you explained you want to go web and mobile for the frontend tier: this inevitably will lead you to the conclusions you pointed out correctly, having to choose a number of platforms and languages to basically create the same application, but the fragmentation of different knowledge and procedures can make your life quite complicated and probably miserable.

Personally I'd go for native Android and React for web. Recently, though, I stumbled upon Flutter which, through the same codebase (in Dart, very similar to JavaScript) can create for you applications for mobile (Android and iOS) and the web: I tried it and I've been blown away by the effectiveness and easiness of using it.

For the backend, keep playing with Flask and build a RESTful API, all in all python is a language way more readable and maintainable than JavaScript, and with node.js is so easy to fall into the callback hell (recently less and less but still). Stay away from Java and its ecosystem if you want to finish you project at all (just kidding).

On the database tier, remember NoSQL databases can be quite powerful, but in your case try something very simple (redis can do), or just go with MongoDB as it makes easy to start and evolve your data structures. If you're more the structured type and you want to go RDBMS, try postgresql, it's easy to start (it has also NoSQL features) but so much more powerful and you could learn real SQL on it (stay away from the omnipresent MySQL, it's kind of odd sometimes).

I hope the above didn't sound too much of a lecture, and I also really hope you learn the most important lesson of all: always keep in mind the big picture!

See more
Needs advice
on
React Native
React
and
Node.js

I'm researching what Technology Stack I should use to build my product (something like food delivery App) for Web, iOS, and Android Apps. Please advise which technologies you would recommend from a Scalability, Reliability, Cost, and Efficiency standpoint for a start-up. Here are the technologies I came up with, feel free to suggest any new technology even it's not in the list below.

For Mobile Apps -

  1. native languages like Swift for IOS and Java/Kotlin for Android
  2. or cross-platform languages like React Native for both IOS and Android Apps

For UI -

  1. React

For Back-End or APIs -

  1. Node.js
  2. PHP

For Database -

  1. PostgreSQL
  2. MySQL
  3. Cloud Firestore
  4. MariaDB

Thanks!

See more
Replies (7)
awesomebanana2018
Recommends
Flutter

My Recommendations: Front End: Flutter because of developer tooling and powerful declarative widget system Back End: Node.js or Go because Node.js has a large ecosystem and Go has a good built in http setup Database: Cloud Firestore because of ease of use, NoSQL, and the ability to set data from the client

See more
Ezra Fayet
Recommends
Node.js

If you go with react / react native I advice you to go with node. Why ? I first didn't believe coding in javaScript everywhere (back, front and db queries) was making life SO much more easy. I still followed the advice, in the end this is a huge relief. For a small startup project with 1/2/3 devs, using only one langage increases efficiency a lot. You can switch very fast from a topic to another.

See more
Recommends
Node.js

Considering that your objectives are Scalability, Reliability, Cost, and Efficiency, I recommend the following:

  1. Backend - Node.js/Express/MongoDB
  2. Frontend - React
  3. Mobile - React Native

You can then focus on using one language (JavaScript) for all the above. As your startup grows, sure, you may have other requirements that warrant using other technologies. Nevertheless, the above stack will definitely satisfy your objectives. Hope this helps!

See more
Sergii Shyran
Developer at Shyran Systems · | 4 upvotes · 1.6K views
Recommends
Dart

Flutter is a new sparc out there, because it's Dart engine can run server-side, client side (as web app) and natively - it cross compiles to all major platforms from single codebase...

See more
Recommends
NestJS

For UI:- Flutter / ReactJS For Backend:- NestJs For Database:- Cloud Firestore & Mysql

See more
Recommends
React

I'm currently working with React and I would recommend you because it will help you develop both web app and similar to React is Reactive Native which will work mobile devices. And with these frameworks, I will choose Node.js in the backend. In DB, I have experiences with MySql and MongoDB. I think you should go with MongoDB, it will help out with its cloud service also. Happy Coding!😀🤩

See more
Ruslan Rayanov
Recommends

We thought about creating a web application for a long time, but came to the conclusion that it is better to create an adaptive site with PWA technology. This will save your budget and speed up updates (you won't need to update 3 versions of apps for different platforms, just the site). In addition, research on the preferences of smartphone users suggests that users are not very willing to install new offers for reasons of personal data security. Sites that work through the browser are more trusted.

See more
View all (7)
Decisions about Node.js and React
Kamaleshwar BN
Head of Engineering at Dibiz Pte. Ltd. · | 10 upvotes · 225.6K views

It was easier to find people who've worked on React than Vue. Angular did not have this problem, but seemed way too bloated compared to React. Angular also brings in restrictions working within their MVC framework. React on the other hand only handles the view/rendering part and rest of the control is left to the developers. React has a very active community, support and has lots of ready-to-use plugins/libraries available.

See more
José Oberto
Head of Engineering & Development at Chiper · | 14 upvotes · 201.6K views

It is a very versatile library that provides great development speed. Although, with a bad organization, maintaining projects can be a disaster. With a good architecture, this does not happen.

Angular is obviously powerful and robust. I do not rule it out for any future application, in fact with the arrival of micro frontends and cross-functional teams I think it could be useful. However, if I have to build a stack from scratch again, I'm left with react.

See more
Omran Jamal
CTO & Co-founder at Bonton Connect · | 7 upvotes · 201.6K views

We actually initially wrote a lot of networking code in Kotlin but the complexities involved prompted us to try and compile NodeJS for Android and port over all the networking logic to Node and communicate with node over the Java Native Interface.

This turned out to be a great decision considering our battery usage fell by 40% and rate of development increased by a factor of 2.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Node.js
Pros of React
  • 1.4K
    Npm
  • 1.3K
    Javascript
  • 1.1K
    Great libraries
  • 1K
    High-performance
  • 791
    Open source
  • 480
    Great for apis
  • 471
    Asynchronous
  • 417
    Great community
  • 387
    Great for realtime apps
  • 292
    Great for command line utilities
  • 78
    Node Modules
  • 76
    Websockets
  • 65
    Uber Simple
  • 53
    Great modularity
  • 53
    Allows us to reuse code in the frontend
  • 38
    Easy to start
  • 33
    Great for Data Streaming
  • 29
    Realtime
  • 25
    Awesome
  • 23
    Non blocking IO
  • 16
    Can be used as a proxy
  • 15
    High performance, open source, scalable
  • 14
    Non-blocking and modular
  • 13
    Easy and Fun
  • 12
    Same lang as AngularJS
  • 11
    Easy and powerful
  • 10
    Future of BackEnd
  • 9
    Fast
  • 8
    Scalability
  • 8
    Cross platform
  • 8
    Fullstack
  • 7
    Mean Stack
  • 7
    Simple
  • 5
    Easy concurrency
  • 5
    Great for webapps
  • 5
    React
  • 4
    Friendly
  • 4
    Easy to use and fast and goes well with JSONdb's
  • 4
    Typescript
  • 4
    Fast, simple code and async
  • 3
    Its amazingly fast and scalable
  • 3
    Scalable
  • 3
    Great speed
  • 3
    Fast development
  • 3
    Isomorphic coolness
  • 3
    Control everything
  • 2
    It's fast
  • 2
    Not Python
  • 2
    Blazing fast
  • 2
    One language, end-to-end
  • 2
    TypeScript Support
  • 2
    Easy to learn
  • 2
    Javascript2
  • 2
    Easy to use
  • 2
    Less boilerplate code
  • 2
    Sooper easy for the Backend connectivity
  • 2
    Great community
  • 2
    Scales, fast, simple, great community, npm, express
  • 2
    Performant and fast prototyping
  • 1
    Easy
  • 1
    Lovely
  • 0
    Event Driven
  • 751
    Components
  • 651
    Virtual dom
  • 558
    Performance
  • 484
    Simplicity
  • 436
    Composable
  • 174
    Data flow
  • 159
    Declarative
  • 123
    Isn't an mvc framework
  • 113
    Reactive updates
  • 110
    Explicit app state
  • 31
    JSX
  • 23
    Learn once, write everywhere
  • 18
    Uni-directional data flow
  • 16
    Easy to Use
  • 14
    Works great with Flux Architecture
  • 10
    Great perfomance
  • 8
    Built by Facebook
  • 6
    Javascript
  • 5
    TypeScript support
  • 5
    Speed
  • 4
    Feels like the 90s
  • 4
    Easy to start
  • 4
    Awesome
  • 4
    Scalable
  • 3
    Hooks
  • 3
    Fancy third party tools
  • 3
    Server side views
  • 3
    Functional
  • 2
    Strong Community
  • 2
    Simple, easy to reason about and makes you productive
  • 2
    Simple
  • 2
    Has functional components
  • 2
    Excellent Documentation
  • 2
    Very gentle learning curve
  • 2
    Scales super well
  • 2
    Just the View of MVC
  • 2
    Server Side Rendering
  • 2
    Cross-platform
  • 2
    Rich ecosystem
  • 2
    Has arrow functions
  • 2
    Super easy
  • 2
    Closer to standard JavaScript and HTML than others
  • 2
    Props
  • 2
    Great migration pathway for older systems
  • 2
    SSR
  • 2
    Fast evolving
  • 1
    Obama
  • 1
    Www
  • 1
    Allows creating single page applications
  • 1
    Start simple
  • 1
    Every decision architecture wise makes sense
  • 1
    Fragments
  • 1
    Permissively-licensed
  • 1
    Beautiful and Neat Component Management
  • 1
    Split your UI into components with one true state
  • 1
    Sharable
  • 1
    Sdfsdfsdf

Sign up to add or upvote prosMake informed product decisions

Cons of Node.js
Cons of React
  • 46
    Bound to a single CPU
  • 40
    New framework every day
  • 34
    Lots of terrible examples on the internet
  • 28
    Asynchronous programming is the worst
  • 22
    Callback
  • 16
    Javascript
  • 11
    Dependency based on GitHub
  • 10
    Dependency hell
  • 10
    Low computational power
  • 7
    Can block whole server easily
  • 6
    Very very Slow
  • 6
    Callback functions may not fire on expected sequence
  • 3
    Unneeded over complication
  • 3
    Unstable
  • 3
    Breaking updates
  • 1
    No standard approach
  • 32
    Requires discipline to keep architecture organized
  • 20
    No predefined way to structure your app
  • 19
    Need to be familiar with lots of third party packages
  • 6
    JSX
  • 6
    Not enterprise friendly
  • 1
    One-way binding only
  • 1
    State consistency with backend neglected

Sign up to add or upvote consMake informed product decisions

What is Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

What is React?

Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Node.js?
What companies use React?
See which teams inside your own company are using Node.js or React.
Sign up for Private StackShareLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Node.js?
What tools integrate with React?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

+12
5
3255
Oct 24 2019 at 7:43PM

AppSignal

+8
5
685
Oct 11 2019 at 2:36PM

LogRocket

+8
5
1513
Oct 3 2019 at 7:13PM

Ably Realtime

+8
4
3197
+6
1
1116
What are some alternatives to Node.js and React?
AngularJS
AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding.
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
See all alternatives
Reviews of Node.js and React
Web Developer, Freelancer
Review of
Node.js

I have benchmarked Node.js and other popular frameworks using a real life application example. You can find the results here: https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3

Review of
React

Perfect workflow

How developers use Node.js and React
Instacart uses
React

Before two weeks ago or so, it used to be Backbone views and models, and everything was on our main store app, and our mobile web app, but actually, we just switched our mobile web app to using ReactJS for the interface. So it’s using Backbone models but ReactJS front-end components. Really, it was borne out of the frustration with how the Backbone model-view bindings worked, and it wasn’t especially performant for large views, and we had to do lots of tricks to make it performant. But swapping that out with React views meant that it could be both simpler and faster without having to spend a lot of time on that.

One other interesting thing about that is, since React actually works okay with the Backbone models and the Backbone router and stuff like that, we didn’t have to rewrite the mobile web application and update it to ReactJS. Rewrites are almost always a bad idea. We were able to upgrade pieces of it at a time, move on to React, and now the entire thing is using React and just has the Backbone router and models and stuff like that that we already had, so it's a lot faster.

MaxCDN uses
Node.js

We decided to move the provisioning process to an API-driven process, and had to decide among a few implementation languages:

  • Go, the server-side language from Google
  • NodeJS, an asynchronous framework in Javascript

We built prototypes in both languages, and decided on NodeJS:

  • NodeJS is asynchronous-by-default, which suited the problem domain. Provisioning is more like “start the job, let me know when you’re done” than a traditional C-style program that’s CPU-bound and needs low-level efficiency.
  • NodeJS acts as an HTTP-based service, so exposing the API was trivial

Getting into the headspace and internalizing the assumptions of a tool helps pick the right one. NodeJS assumes services will be non-blocking/event-driven and HTTP-accessible, which snapped into our scenario perfectly. The new NodeJS architecture resulted in a staggering 95% reduction in processing time: requests went from 7.5 seconds to under a second.

Netflix uses
React

At the beginning of last year, Netflix UI engineers embarked on several ambitious projects to dramatically transform the user experience on our desktop and mobile platforms. Given a UI redesign of a scale similar to that undergone by TVs and game consoles, it was essential for us to re-evaluate our existing UI technology stack and to determine whether to explore new solutions. Do we have the right building blocks to create best-in-class single-page web applications? And what specific problems are we looking to solve? Much of our existing front-end infrastructure consists of hand-rolled components optimized for the current website and iOS application. Our decision to adopt React was influenced by a number of factors, most notably: 1) startup speed, 2) runtime performance, and 3) modularity.

React has exceeded our requirements and enabled us to build a tremendous foundation on which to innovate the Netflix experience.

Trello uses
Node.js

The server side of Trello is built in Node.js. We knew we wanted instant propagation of updates, which meant that we needed to be able to hold a lot of open connections, so an event-driven, non-blocking server seemed like a good choice. Node also turned out to be an amazing prototyping tool for a single-page app. The prototype version of the Trello server was really just a library of functions that operated on arrays of Models in the memory of a single Node.js process, and the client simply invoked those functions through a very thin wrapper over a WebSocket. This was a very fast way for us to get started trying things out with Trello and making sure that the design was headed in the right direction. We used the prototype version to manage the development of Trello and other internal projects at Fog Creek.

AngeloR uses
Node.js

All backend code is done in node.js

We have a SOA for our systems. It isn't quite Microservices jsut yet, but it does provide domain encapsulation for our systems allowing the leaderboards to fail without affecting the login or education content.

We've written a few internal modules including a very simple api framework.

I ended up picking Node.js because the game client is entirely in JavaScript as well. This choice made it a lot easier for developers to cross borders between being "client side" game developers and "server side" game developers. It also meant that the pool of knowledge/best practices is applicable almost across the company.

Tony Manso uses
Node.js

Node.js is the foundation for the server. Using Express.js for serving up web content, and sockets.io for synchronizing communications between all clients and the server, the entire game runs as Javascript in Node.js.

I don't know how well this will scale if/when I have hundreds of people connected simultaneously, but I suspect that when that time comes, it may be just a matter of increasing the hardware.

As for why I chose Node.js... I just love JavaScript! My code is all original, meaning that I didn't have to inherit anyone's bad Javascript. I'm perfectly capable of creating my own bad Javascript, thank you! Also, npm rocks!

Tarun Singh uses
Node.js

Used node.js server as backend. Interacts with MongoDB using MongoSkin package which is a wrapper for the MongoDB node.js driver. It uses express for routing and cors package for enabling cors and eyes package for enhancing readability of logs. Also I use nodemon which takes away the effort to restart the server after making changes.

Cloudcraft uses
React

Web-frontend programming prior to React: like banging rocks together. With React: Like wearing fusion powered underwear. Gives you a nice warm feeling. Using React for Cloudcraft.co allowed us to create a beautiful UI in record time (1 month start to launch), with virtually no bugs popping up during development. The functional approach to just rendering your component given a state just makes so much sense, with React figuring out the delta between your current and desired representation. It's the future kids!

Kurzor, s.r.o. uses
React

React is choice number 1 when it comes to JS development at Kurzor. We choose React because it solves many issues with web applications in a elegant way. Writing an app in components is useful for coordination and isolation of concerns. React forces you to abandon state and use vertical passing through props instead. And having as many Pure Components as possible helps to write cleaner code.

With React we usually use: Redux, React Router, React Toolbox, Styled Components.

Kent Steiner uses
React

This is the best component framework and API available today for building modern web sites and apps. I really enjoy how minimal it is, and powerful at the same time. It removes opinionated development and replaces it with logic and data philosophies, which has in turn fostered a robust and lively code and support community.