ExpressJS vs Flask vs Sinatra

Get Advice Icon

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

ExpressJS
ExpressJS

6.1K
4.5K
+ 1
1.3K
Flask
Flask

4.3K
3.4K
+ 1
1.1K
Sinatra
Sinatra

410
312
+ 1
209

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.

What is Flask?

Flask is intended for getting started very quickly and was developed with best intentions in mind.

What is Sinatra?

Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
Get Advice Icon

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

Why do developers choose ExpressJS?
Why do developers choose Flask?
Why do developers choose Sinatra?

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

    Be the first to leave a con
    What companies use ExpressJS?
    What companies use Flask?
    What companies use Sinatra?

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

    What tools integrate with ExpressJS?
    What tools integrate with Flask?
    What tools integrate with Sinatra?

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

    What are some alternatives to ExpressJS, Flask, and Sinatra?
    Koa
    Koa aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware.
    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.
    Django
    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
    Go
    Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
    nginx
    nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.
    See all alternatives
    Decisions about ExpressJS, Flask, and Sinatra
    Antonio Kobashikawa
    Antonio Kobashikawa
    Web developer | Blogger | Freelancer at Rulo Kobashikawa · | 5 upvotes · 56.4K views
    Node.js
    Node.js
    ExpressJS
    ExpressJS
    MongoDB
    MongoDB
    Vue.js
    Vue.js
    Ionic
    Ionic
    JavaScript
    JavaScript
    ES6
    ES6
    Koa
    Koa

    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
    Pierre Chapuis
    Pierre Chapuis
    at Pierre Chapuis · | 5 upvotes · 57.1K views
    atChilliChilli
    Flask
    Flask
    Hug
    Hug
    SQLAlchemy
    SQLAlchemy
    Python
    Python
    Gunicorn
    Gunicorn

    Unlike our frontend, we chose Flask, a microframework, for our backend. We use it with Python 3 and Gunicorn.

    One of the reasons was that I have significant experience with this framework. However, it also was a rather straightforward choice given that our backend almost only serves REST APIs, and that most of the work is talking to the database with SQLAlchemy .

    We could have gone with something like Hug but it is kind of early. We might revisit that decision for new services later on.

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

    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 · 110K views
    Fastify
    Fastify
    ExpressJS
    ExpressJS
    Node.js
    Node.js
    Vuetify
    Vuetify
    Quasar Framework
    Quasar Framework
    Vue.js
    Vue.js
    vuex
    vuex
    Electron
    Electron
    Fastly
    Fastly

    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 · 217K views
    MongoDB Atlas
    MongoDB Atlas
    Java
    Java
    Spring Boot
    Spring Boot
    Node.js
    Node.js
    ExpressJS
    ExpressJS
    Python
    Python
    Flask
    Flask
    Amazon Kinesis
    Amazon Kinesis
    Amazon Kinesis Firehose
    Amazon Kinesis Firehose
    Amazon SNS
    Amazon SNS
    Amazon SQS
    Amazon SQS
    AWS Lambda
    AWS Lambda
    Angular 2
    Angular 2
    RxJS
    RxJS
    GitHub
    GitHub
    Travis CI
    Travis CI
    Terraform
    Terraform
    Docker
    Docker
    Serverless
    Serverless
    Amazon RDS
    Amazon RDS
    Amazon DynamoDB
    Amazon DynamoDB
    Amazon S3
    Amazon S3
    #Backend
    #Microservices
    #Eventsourcingframework
    #Webapps
    #Devops
    #Data

    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 · 21.3K views
    atPayzone UKPayzone UK
    LoopBack
    LoopBack
    ExpressJS
    ExpressJS

    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