Get Advice Icon

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

Electron
Electron

2.5K
2.1K
+ 1
93
React
React

28.1K
19.9K
+ 1
3.4K
Add tool

Electron vs React: What are the differences?

What is Electron? Build cross platform desktop apps with web technologies. Formerly known as Atom Shell, made by GitHub. With Electron, creating a desktop application for your company or idea is easy. Initially developed for GitHub's Atom editor, Electron has since been used to create applications by companies like Microsoft, Facebook, Slack, and Docker. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor.

What is React? 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.

Electron can be classified as a tool in the "Cross-Platform Desktop Development" category, while React is grouped under "Javascript UI Libraries".

"Easy to make rich cross platform desktop applications" is the top reason why over 50 developers like Electron, while over 673 developers mention "Components" as the leading cause for choosing React.

Electron and React are both open source tools. React with 132K GitHub stars and 24.5K forks on GitHub appears to be more popular than Electron with 74.9K GitHub stars and 9.81K GitHub forks.

According to the StackShare community, React has a broader approval, being mentioned in 3224 company stacks & 3092 developers stacks; compared to Electron, which is listed in 221 company stacks and 374 developer stacks.

What is Electron?

With Electron, creating a desktop application for your company or idea is easy. Initially developed for GitHub's Atom editor, Electron has since been used to create applications by companies like Microsoft, Facebook, Slack, and Docker. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor.

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.
Get Advice Icon

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

Why do developers choose Electron?
Why do developers choose React?

Sign up to add, upvote and see more prosMake informed product decisions

Jobs that mention Electron and React as a desired skillset
What companies use Electron?
What companies use React?

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

What tools integrate with Electron?
What tools integrate with React?

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

What are some alternatives to Electron and React?
Photon
The fastest way to build beautiful Electron apps using simple HTML and CSS. Underneath it all is Electron. Originally built for GitHub's Atom text editor, Electron is the easiest way to build cross-platform desktop applications.
React Native Desktop
Build OS X desktop apps using React Native.
React Native
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
JavaFX
It is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms.
Element
Element is a Vue 2.0 based component library for developers, designers and product managers, with a set of design resources.
See all alternatives
Decisions about Electron and React
StackShare Editors
StackShare Editors
Chromium
Chromium
MacGap
MacGap
ES6
ES6
Electron
Electron
React
React
Node.js
Node.js

The Slack desktop app was originally written us the MacGap framework, which used Apple’s WebView to host web content inside of a native app frame. As this approach continued to present product limitations, Slack decided to migrate the desktop app to Electron. Electron is a platform that combines the rendering engine from Chromium and the Node.js runtime and module system. The desktop app is written as a modern ES6 + async/await React application.

For the desktop app, Slack takes a hybrid approach, wherein some of the assets ship as part of the app, but most of their assets and code are loaded remotely.

See more
StackShare Editors
StackShare Editors
Chromium
Chromium
MacGap
MacGap
ES6
ES6
Electron
Electron
TypeScript
TypeScript
React
React
Node.js
Node.js

Slack's new desktop application was launched for macOS. It was built using Electron for a faster, frameless look with a host of background improvements for a superior Slack experience. Instead of adopting a complete-in-box approach taken by other apps, Slack prefers a hybrid approach where some of the assets are loaded as part of the app, while others are made available remotely. Slack's original desktop app was written using the MacGap v1 framework using WebView to host web content within the native app frame. But it was difficult to upgrade with new features only available to Apple's WKWebView and moving to this view called for a total application rewrite.

Electron brings together Chromium's rendering engine with the Node.js runtime and module system. The new desktop app is now based on an ES6 + async/await React application is currently being moved gradually to TypeScript. Electron functions on Chromium's multi-process model, with each Slack team signed into a separate process and memory space. It also helps prevent remote content to directly access desktop features using a feature called WebView Element which creates a fresh Chromium renderer process and assigns rendering of content for its hosting renderer. Additional security can be ensured by preventing Node.js modules from leaking into the API surface and watching out for APIs with file paths. Communication between processes on Electron is carried out via electron-remote, a pared-down, zippy version of Electron's remote module, which makes implementing the web apps UI much easier.

See more
Tom Klein
Tom Klein
CEO at Gentlent · | 4 upvotes · 29.9K views
atGentlentGentlent
Python
Python
Electron
Electron
Socket.IO
Socket.IO
Google Compute Engine
Google Compute Engine
TypeScript
TypeScript
ES6
ES6
Ubuntu
Ubuntu
PostgreSQL
PostgreSQL
React
React
nginx
nginx
Sass
Sass
HTML5
HTML5
PHP
PHP
Node.js
Node.js
JavaScript
JavaScript

Our most used programming languages are JavaScript / Node.js for it's lightweight and fast use, PHP because everyone knows it, HTML5 because you can't live without it and Sass to write great CSS. Occasionally, we use nginx as a web server and proxy, React for our UX, PostgreSQL as fast relational database, Ubuntu as server OS, ES6 and TypeScript for Node, Google Compute Engine for our infrastructure, and Socket.IO and Electron for specific use cases. We also use Python for some of our backends.

See more
Ido Shamun
Ido Shamun
at The Elegant Monkeys · | 5 upvotes · 15.8K views
atDailyDaily
Polymer
Polymer
React
React
Vue.js
Vue.js
#Frontend

For developing our #frontend applications, we decided to use Vue.js . Being such an easy to learn library, compared to React for example, it made everything so easy. At first we started with Polymer but the existing tooling and small community at the time made us look for alternatives.

See more
React
React

I use React because I think it is the one that embraces the most the functional component design.

New versions of React are on the right track.

Having to work with Vue or Angular is a lot of pain for me, especially because I'm used to the simplicity of React (which comes with the great price of a high learning curve). Also, the use of the Flux Pattern is so much easier with React, being designed as a one way data flow, than with its two foremost competitors.

Cheers to the React Team, and thank you very much !

See more
Rory Womack
Rory Womack
Software Engineer at Relatient · | 3 upvotes · 2K views
React
React
Vue.js
Vue.js
Angular 2
Angular 2

I recommend using Angular 2 when moving from Angular 1 if you are looking for a fully featured framework solution. Neither Vue.js nor React just work out of the box and require creating your own components from scratch as well as the kind of support architecture available in Angular 2 out of the box. However if you are looking for something lightweight to add reusable components to an existing application Vue.js and React are more ideal to that end.

See more
React
React

I use React because it provides a high level of flexibility to architecture the front end app having the posibility or not to incorporate other libraries such as State Management, Routing or Form Validation, among others. Unidirectional flow and component reutilization is another important advantage.

See more
Rafael Santos
Rafael Santos
CTO at Decision6 · | 11 upvotes · 13.9K views
atDecision6Decision6
Vue.js
Vue.js
React
React
AngularJS
AngularJS

Back in 2015, my company had a back-office dashboard that was originally built in AngularJS 1. Since Angular 2 presented drastic changes we decided to rethink the options and we looked at React and Vue.js. Besides, at the time, Vue had basically only one developer, its structure (100% oriented to components) and also its backward compatibility focus (Angular 1 to 2 no more) we preferred it against React cause it seemed more straightforward, clean and with a small learning curve. Now 4-5 years later we are very happy with our choice.

See more
React
React
Vue.js
Vue.js

I find using Vue.js to be easier (more concise / less boilerplate) and more intuitive than writing React. However, there are a lot more readily available React components that I can just plug into my projects. I'm debating whether to use Vue.js or React for an upcoming project that I'm going to use to help teach a friend how to build an interactive frontend. Which would you recommend I use?

See more
Johnny Bell
Johnny Bell
Senior Software Engineer at StackShare · | 14 upvotes · 810 views
React
React
Vue.js
Vue.js

I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.

It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.

See more
Mark Scott
Mark Scott
Personal Development at Mark Scott · | 3 upvotes · 0 views
React
React
Vue.js
Vue.js

Having developed in both Vue.js and React, I agree with your assessment of Vue. It does feel light and easier to understand and therefore learn. Seeing that Vue has some genetic roots with React, I would say start your friend out on Vue. If they need to learn React later, that should give them a good foundation. If you have a Pluralsight subscription, look for my course on Vue.js and feel free to use the demo project as a starting point.

See more
Thomas LEVEIL
Thomas LEVEIL
at Mediaveille · | 5 upvotes · 1 views
React
React
Vue.js
Vue.js

I chose to use Vue.js a few years ago mainly for the easy learning curve. I have no experience with React, so I won't make any comparison here. Regarding available components, I never felt locked in because of Vue when looking for components. It happens that a component I wish to use is not available as a Vue component (and nobody published any Vue wrapper for it), but in such cases I was able to quickly hack a Vue wrapper component. In the end I don't think a decision to choose one framework over another should be made solely because of the number of components available. (And not all components in either framework is maintained, bug free, documented or easy to use)

See more
Oguzhan Cetin
Oguzhan Cetin
Senior Developer at Melantis · | 4 upvotes · 2 views
JavaScript
JavaScript
Vue.js
Vue.js
React
React

React is great, Vue.js is also great. But I'm personally using React, because React is changing the way I look at how JavaScript should be. This is a really big plus for me. Vue is good, but it's just another alternative. Also, too many big companies are using React, that means you can trust it for big projects.

See more
Adebayo Akinlaja
Adebayo Akinlaja
Engineering Manager at Andela · | 13 upvotes · 21.5K views
Bit
Bit
Create React App
Create React App
Material Kit
Material Kit
TypeScript
TypeScript
Evergreen
Evergreen
Material-UI
Material-UI
React
React

I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.

A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.

In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.

If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.

See more
Vue.js
Vue.js
React
React
PHP
PHP
Laravel
Laravel
Node.js
Node.js

I want to create a video sharing service like Youtube, which users can use to upload and watch videos. I prefer to use Vue.js for front-end. What do you suggest for the back-end? Node.js or Laravel ( PHP ) I need a good performance with high speed, and the most important thing is the ability to handle user's requests if the site's traffic increases. I want to create an algorithm that users who watch others videos earn points (randomly but in clear context) If you have anything else to improve, please let me know. For eg: If you prefer React to Vue.js. Thanks in advance

See more
Interest over time
Reviews of Electron and React
Review ofReactReact

Perfect workflow

How developers use Electron and React
Avatar of Instacart
Instacart uses ReactReact

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.

Avatar of Netflix
Netflix uses ReactReact

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.

Avatar of Cloudcraft
Cloudcraft uses ReactReact

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!

Avatar of Kurzor, s.r.o.
Kurzor, s.r.o. uses ReactReact

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.

Avatar of Kent Steiner
Kent Steiner uses ReactReact

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.

Avatar of Chris Saylor
Chris Saylor uses ElectronElectron

Our application began as an HTML5 browser game, however we decided to leverage certain native parts of desktop applications by wrapping our client code into Electron. This also allowed us to not have to worry about compatibility across all the various browsers.

Avatar of HyVive
HyVive uses ElectronElectron

Our Web Applications are served on our Desktops by Electron. This allows us to have native apps running on our Workstations without having too many Browser Tabs open at the same time.

Avatar of PawByte
PawByte uses ElectronElectron

Electron is the current preferred method to convert games made in the Game Pencil Editor for desktop support.

Avatar of Metrix Financial Reporting Solutions UG
Metrix Financial Reporting Solutions UG uses ElectronElectron

Implement a web-service using your favorite tools but sell a desktop application for oblivious windows users.

Avatar of Ralic Lo
Ralic Lo uses ElectronElectron

Used Electron to package single page web application as a desktop application.

How much does Electron cost?
How much does React cost?
Pricing unavailable
Pricing unavailable