Get Advice Icon

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

Electron
Electron

2.5K
2.1K
+ 1
93
ExpressJS
ExpressJS

6K
4.4K
+ 1
1.3K
Add tool

Electron vs ExpressJS: 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 ExpressJS? Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple. Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.

Electron belongs to "Cross-Platform Desktop Development" category of the tech stack, while ExpressJS can be primarily classified under "Microframeworks (Backend)".

Some of the features offered by Electron are:

  • Use HTML, CSS, and JavaScript with Chromium and Node.js to build your app.
  • Electron is open source
  • maintained by GitHub and an active community.

On the other hand, ExpressJS provides the following key features:

  • Robust routing
  • HTTP helpers (redirection, caching, etc)
  • View system supporting 14+ template engines

"Easy to make rich cross platform desktop applications" is the primary reason why developers consider Electron over the competitors, whereas "Simple" was stated as the key factor in picking ExpressJS.

Electron and ExpressJS are both open source tools. Electron with 74.4K GitHub stars and 9.72K forks on GitHub appears to be more popular than ExpressJS with 44.3K GitHub stars and 7.45K GitHub forks.

PedidosYa, Coderus, and WebbyLab are some of the popular companies that use ExpressJS, whereas Electron is used by Slack, WebbyLab, and triGo GmbH. ExpressJS has a broader approval, being mentioned in 843 company stacks & 759 developers stacks; compared to Electron, which is listed in 213 company stacks and 366 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 ExpressJS?

Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
Get Advice Icon

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

Why do developers choose Electron?
Why do developers choose ExpressJS?

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

What companies use Electron?
What companies use ExpressJS?

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

What tools integrate with Electron?
What tools integrate with ExpressJS?

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

What are some alternatives to Electron and ExpressJS?
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 ExpressJS
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鈥檚 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
Antonio Kobashikawa
Antonio Kobashikawa
Web developer | Blogger | Freelancer at Rulo Kobashikawa | 4 upvotes 46.6K views
Koa
Koa
ES6
ES6
JavaScript
JavaScript
Ionic
Ionic
Vue.js
Vue.js
MongoDB
MongoDB
ExpressJS
ExpressJS
Node.js
Node.js

We are using Node.js and ExpressJS to build a REST services that is middleware of a legacy system. MongoDB as database. Vue.js helps us to make rapid UI to test use cases. Frontend is build for mobile with Ionic . We like using JavaScript and ES6 .

I think next step could be to use Koa but I am not sure.

See more
GitHub
GitHub
nginx
nginx
ESLint
ESLint
AVA
AVA
Semantic UI React
Semantic UI React
Redux
Redux
React
React
PostgreSQL
PostgreSQL
ExpressJS
ExpressJS
Node.js
Node.js
FeathersJS
FeathersJS
Heroku
Heroku
Amazon EC2
Amazon EC2
Kubernetes
Kubernetes
Jenkins
Jenkins
Docker Compose
Docker Compose
Docker
Docker
#Frontend
#Stack
#Backend
#Containers
#Containerized

Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

See more
Paul Whittemore
Paul Whittemore
Developer and Owner at Appurist Software | 15 upvotes 83.9K views
Fastly
Fastly
Electron
Electron
vuex
vuex
Vue.js
Vue.js
Quasar Framework
Quasar Framework
Vuetify
Vuetify
Node.js
Node.js
ExpressJS
ExpressJS
Fastify
Fastify

I'm building most projects using: Server: either Fastify (all projects going forward) or ExpressJS on Node.js (existing, previously) on the server side, and Client app: either Vuetify (currently) or Quasar Framework (going forward) on Vue.js with vuex on Electron for the UI to deliver both web-based and desktop applications for multiple platforms.

The direct support for Android and iOS in Quasar Framework will make it my go-to client UI platform for any new client-side or web work. On the server, I'll probably use Fastly for all my server work, unless I get into Go more in the future.

Update: The mobile support in Quasar is not a sufficiently compelling reason to move me from Vuetify. I have decided to stick with Vuetify for a UI for Vue, as it is richer in components and enables a really great-looking professional result. For mobile platforms, I will just use Cordova to wrap the Vue+Vuetify app for mobile, and Electron to wrap it for desktop platforms.

See more
Praveen Mooli
Praveen Mooli
Technical Leader at Taylor and Francis | 11 upvotes 164.5K views
MongoDB Atlas
MongoDB Atlas
Amazon S3
Amazon S3
Amazon DynamoDB
Amazon DynamoDB
Amazon RDS
Amazon RDS
Serverless
Serverless
Docker
Docker
Terraform
Terraform
Travis CI
Travis CI
GitHub
GitHub
RxJS
RxJS
Angular 2
Angular 2
AWS Lambda
AWS Lambda
Amazon SQS
Amazon SQS
Amazon SNS
Amazon SNS
Amazon Kinesis Firehose
Amazon Kinesis Firehose
Amazon Kinesis
Amazon Kinesis
Flask
Flask
Python
Python
ExpressJS
ExpressJS
Node.js
Node.js
Spring Boot
Spring Boot
Java
Java
#Data
#Devops
#Webapps
#Eventsourcingframework
#Microservices
#Backend

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Samuel Olugbemi
Samuel Olugbemi
Software Engineer at Payzone UK | 6 upvotes 13.2K views
atPayzone UKPayzone UK
ExpressJS
ExpressJS
LoopBack
LoopBack

I use LoopBack because it is: * It is truly and Unbelievably Extensible * it is default integrated with OpenAPI (Swagger) Spec Driven REST API * I write lesser codes, because most of the user stories have been covered using the code generation * It's documentation is more compact and well detailed than ExpressJS * It is very easy to learn, hence you can build a basic Rest API App in minutes * It has built in NPM packages required to build my Rest API which saves me time on installation and configuration * The Datasource/Service/Controller concept is just Brilliant (that's mostly all you need to get your app speaking with an External API services) * The support for SOAP and Rest API services is amazing!

See more
Interest over time
Reviews of Electron and ExpressJS
No reviews found
How developers use Electron and ExpressJS
Avatar of Cloudcraft
Cloudcraft uses ExpressJSExpressJS

Express.js is the workhorse of the Cloudcraft.co backend. It's not the most exciting part of a stack, but it works, is very well documented, and you can find a plugin for almost everything you could possibly want. We also carefully evaluated Koa.js, but decided not to go down this route: fewer plugins, less documentation & answers online. I'm also not personally convinced by the generators yield syntax at all. ES7 async functions looks like a much better bet, and with Promises and Babel I can have that already today.

Avatar of Volkan 脰z莽elik
Volkan 脰z莽elik uses ExpressJSExpressJS

I use express.js for nightly.zerotoherojs.com and dojo.zerotoherojs.com web apps.

Express is well-known, lightweight, works out-of-the-box, has great middleware support and has minimal learning curve.

It is the best framework to start developing a general Node.js web app.

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 Kent Steiner
Kent Steiner uses ExpressJSExpressJS

I'm fluent in ExpressJS, but over the past two years I have moved to HapiJS. Similar results, but I find Hapi to be more full-featured towards my app, api and service needs. I can operate confidently in both.

Avatar of Promethean TV
Promethean TV uses ExpressJSExpressJS

PrometheanTV utilizes the ExpressJS web application framework to deploy various web applications and services including the Broadcast Center Tool, our video embed service, and our REST API.

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 Merge In
Merge In uses ExpressJSExpressJS

We rely on ExpressJS to serve our content simply, easily, and effectively, without the bloat-ware. Big thanks to StrongLoop for supporting this package.

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 ExpressJS cost?
Pricing unavailable
Pricing unavailable
News about ExpressJS
More news