Alternatives to Sinatra logo

Alternatives to Sinatra

Rails, ExpressJS, Flask, Django REST framework, and hapi are the most popular alternatives and competitors to Sinatra.
439
338
+ 1
209

What is Sinatra and what are its top alternatives?

Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
Sinatra is a tool in the Microframeworks (Backend) category of a tech stack.
Sinatra is an open source tool with 10.9K GitHub stars and 2K GitHub forks. Here’s a link to Sinatra's open source repository on GitHub

Sinatra alternatives & related posts

Rails logo

Rails

9.4K
6K
5.3K
9.4K
6K
+ 1
5.3K
Web development that doesn't hurt
Rails logo
Rails
VS
Sinatra logo
Sinatra

related Rails posts

Zach Holman
Zach Holman
at Zach Holman · | 34 upvotes · 314K views
React
React
Apollo
Apollo
Rails
Rails
JavaScript
JavaScript

Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

See more
Russel Werner
Russel Werner
Lead Engineer at StackShare · | 21 upvotes · 506.5K views
atStackShareStackShare
React
React
Glamorous
Glamorous
Apollo
Apollo
Node.js
Node.js
Rails
Rails
Heroku
Heroku
GitHub
GitHub
Amazon S3
Amazon S3
Amazon CloudFront
Amazon CloudFront
Webpack
Webpack
CircleCI
CircleCI
Redis
Redis
#StackDecisionsLaunch
#SSR
#Microservices
#FrontEndRepoSplit

StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

#StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

See more
ExpressJS logo

ExpressJS

7.2K
5.5K
1.4K
7.2K
5.5K
+ 1
1.4K
Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple
ExpressJS logo
ExpressJS
VS
Sinatra logo
Sinatra

related ExpressJS posts

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 · 310.5K 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
Flask logo

Flask

5.2K
4.2K
1.1K
5.2K
4.2K
+ 1
1.1K
a microframework for Python based on Werkzeug, Jinja 2 and good intentions.
Flask logo
Flask
VS
Sinatra logo
Sinatra

related Flask posts

James Man
James Man
Software Engineer at Pinterest · | 28 upvotes · 145.3K views
Flask
Flask
React
React

One of our top priorities at Pinterest is fostering a safe and trustworthy experience for all Pinners. As Pinterest’s user base and ads business grow, the review volume has been increasing exponentially, and more content types require moderation support. To solve greater engineering and operational challenges at scale, we needed a highly-reliable and performant system to detect, report, evaluate, and act on abusive content and users and so we created Pinqueue.

Pinqueue-3.0 serves as a generic platform for content moderation and human labeling. Under the hood, Pinqueue3.0 is a Flask + React app powered by Pinterest’s very own Gestalt UI framework. On the backend, Pinqueue3.0 heavily relies on PinLater, a Pinterest-built reliable asynchronous job execution system, to handle the requests for enqueueing and action-taking. Using PinLater has significantly strengthened Pinqueue3.0’s overall infra with its capability of processing a massive load of events with configurable retry policies.

Hundreds of millions of people around the world use Pinterest to discover and do what they love, and our job is to protect them from abusive and harmful content. We’re committed to providing an inspirational yet safe experience to all Pinners. Solving trust & safety problems is a joint effort requiring expertise across multiple domains. Pinqueue3.0 not only plays a critical role in responsively taking down unsafe content, it also has become an enabler for future ML/automation initiatives by providing high-quality human labels. Going forward, we will continue to improve the review experience, measure review quality and collaborate with our machine learning teams to solve content moderation beyond manual reviews at an even larger scale.

See more
Praveen Mooli
Praveen Mooli
Engineering Manager at Taylor and Francis · | 12 upvotes · 530.6K 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

related Django REST framework posts

Tim Abbott
Tim Abbott
Founder at Zulip · | 9 upvotes · 99.7K views
atZulipZulip
Django
Django
Django REST framework
Django REST framework

Zulip has been powered by Django since the very early days of its development with Django 1.4, back in 2012. As a reasonably mature web application with significant scale, we're at the stage in many companies' development where one starts to rip out more and more of the web framework to optimize things or just make them work the way we want. (E.g. while I was at Dropbox in early 2016, we discovered we only had about 600 lines of code left from the original Pylons framework that actually ran).

One of the things that has been really fantastic about Django is that we're still happily using it for the vast majority of code in the project, and every time Django comes out with a new release, I read the changelog and get excited about several improvements that actually make my life better. While Django has made some design decisions that I don't agree with (e.g. I'm not a fan of Django REST framework, and think it makes life more difficult), Django also makes it easy to do your own thing, which we've done to great effect (see the linked article for details on our has_request_variables framework).

Overall I think we've gotten a ton of value out of Python and Django and would recommend it to anyone starting a new full-featured web application project today.

See more

related hapi posts

Teo Deleanu
Teo Deleanu
Developer · | 3 upvotes · 31.6K views
atAppSeedAppSeed
React
React
Node.js
Node.js
Docker
Docker
Kubernetes
Kubernetes
Sequelize
Sequelize
Mongoose
Mongoose
MongoDB
MongoDB
ExpressJS
ExpressJS
hapi
hapi
Vue.js
Vue.js
Angular 2
Angular 2

What is the best way to increase your income as a freelancer in 2019? What frameworks should be the best to learn? React Node.js Docker Kubernetes Sequelize Mongoose MongoDB ExpressJS hapi Based on trends I've picked up a JS full stack. If you need to work under startups you may replace React with Vue.js . If you want to work in outsourcing Angular 2+ may be better.

What is your opinion?

See more
Koa logo

Koa

298
224
6
298
224
+ 1
6
Next generation web framework for node.js
Koa logo
Koa
VS
Sinatra logo
Sinatra

related Koa posts

Antonio Kobashikawa
Antonio Kobashikawa
Web developer | Blogger | Freelancer at Rulo Kobashikawa · | 6 upvotes · 87.3K 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
Paul Whittemore
Paul Whittemore
Developer and Owner at Appurist Software · | 1 upvotes · 60.4K views
Fastify
Fastify
Koa
Koa
ExpressJS
ExpressJS

Will base most server-side APIs on Fastify . Smaller, faster, easier. Faster than Koa; and twice as fast as ExpressJS.

See more
Lumen logo

Lumen

249
229
85
249
229
+ 1
85
The stunningly fast PHP micro-framework by Laravel
Lumen logo
Lumen
VS
Sinatra logo
Sinatra

related Lumen posts

Tassanai Singprom
Tassanai Singprom
JavaScript
JavaScript
PHP
PHP
HTML5
HTML5
jQuery
jQuery
Redis
Redis
Amazon EC2
Amazon EC2
Ubuntu
Ubuntu
Sass
Sass
Vue.js
Vue.js
Firebase
Firebase
Laravel
Laravel
Lumen
Lumen
Amazon RDS
Amazon RDS
GraphQL
GraphQL
MariaDB
MariaDB
Google Analytics
Google Analytics
Postman
Postman
Elasticsearch
Elasticsearch
Git
Git
GitHub
GitHub
GitLab
GitLab
npm
npm
Visual Studio Code
Visual Studio Code
Kibana
Kibana
Sentry
Sentry
BrowserStack
BrowserStack
Slack
Slack

This is my stack in Application & Data

JavaScript PHP HTML5 jQuery Redis Amazon EC2 Ubuntu Sass Vue.js Firebase Laravel Lumen Amazon RDS GraphQL MariaDB

My Utilities Tools

Google Analytics Postman Elasticsearch

My Devops Tools

Git GitHub GitLab npm Visual Studio Code Kibana Sentry BrowserStack

My Business Tools

Slack

See more
Y. Taborda
Y. Taborda
Full Stack Developer · | 1 upvotes · 79.6K views
PHP
PHP
Lumen
Lumen
Yii
Yii
Slim
Slim

I'm about to start a new project to build a REST API, and I got to this point: Yii2 Vs Lumen Vs Slim, I used Yii 1.1 a while a go and it was awesome, really easy to work with, as a developer you don't have to worry about almost anything, just setup the framework, get your php extensions, and start coding your app.

But, I was told about performance and someone recomended Lumen or Slim to work with a micro framework and a less bloated framework, what worries me is the lack of advantages that Yii2 offers, ACF and RBAC as a native tool on the framework, gii, the model validations and all the security props already in it.

Is it worth it? Is the performance so great on those frameworks to leave aside the advantages of a framework like Yii2?

How do you suggest to make the test to prove wich one is better?

PHP Lumen Yii Slim

See more