Alternatives to Sinatra logo

Alternatives to Sinatra

Rails, Flask, Rails API, Hanami, and Padrino are the most popular alternatives and competitors to Sinatra.
1.1K
497
+ 1
212

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 12K GitHub stars and 2.1K GitHub forks. Here’s a link to Sinatra's open source repository on GitHub

Top Alternatives to Sinatra

  • Rails
    Rails

    Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. ...

  • Flask
    Flask

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

  • Rails API
    Rails API

    Rails::API is a subset of a normal Rails application, created for applications that don't require all functionality that a complete Rails application provides. It is a bit more lightweight, and consequently a bit faster than a normal Rails application. The main example for its usage is in API applications only, where you usually don't need the entire Rails middleware stack nor template generation. ...

  • Hanami
    Hanami

    Use the 100+ features that we offer to build powerful products without compromising memory. Hanami consumes 60% less memory than other full-featured Ruby frameworks. ...

  • Padrino
    Padrino

    Padrino is a ruby framework built upon the excellent Sinatra Microframework. Padrino was created to make it fun and easy to code more advanced web applications while still adhering to the spirit that makes Sinatra great! ...

  • Mercury
    Mercury

    A modular JSON-RPC library that allows pluggable transport layers, JSON libraries, and effect/async monads. It is used to communicate with embedded devices where the device is acting in the server role. ...

  • Grape
    Grape

    Grape is a REST-like API micro-framework for Ruby. It's designed to run on Rack or complement existing web application frameworks such as Rails and Sinatra by providing a simple DSL to easily develop RESTful APIs. It has built-in support for common conventions, including multiple formats, subdomain/prefix restriction, content negotiation, versioning and much more. ...

  • ExpressJS
    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. ...

Sinatra alternatives & related posts

Rails logo

Rails

19.3K
13.1K
5.4K
Web development that doesn't hurt
19.3K
13.1K
+ 1
5.4K
PROS OF RAILS
  • 855
    Rapid development
  • 652
    Great gems
  • 605
    Great community
  • 483
    Convention over configuration
  • 417
    Mvc
  • 348
    Great for web
  • 343
    Beautiful code
  • 310
    Open source
  • 270
    Great libraries
  • 261
    Active record
  • 108
    Elegant
  • 90
    Easy to learn
  • 88
    Easy Database Migrations
  • 82
    Makes you happy
  • 75
    Free
  • 62
    Great routing
  • 54
    Has everything you need to get the job done
  • 41
    Great Data Modeling
  • 38
    MVC - Easy to start on
  • 38
    Beautiful
  • 35
    Easy setup
  • 26
    Great caching
  • 25
    Ultra rapid development time
  • 22
    It's super easy
  • 17
    Great Resources
  • 16
    Easy to build mockups that work
  • 14
    Less Boilerplate
  • 7
    Developer Friendly
  • 7
    API Development
  • 6
    Great documentation
  • 5
    Easy REST API creation
  • 5
    Quick
  • 4
    Intuitive
  • 4
    Great language
  • 4
    Haml and sass
  • 4
    Easy to learn, use, improvise and update
  • 2
    Metaprogramming
  • 2
    It works
  • 2
    Jet packs come standard
  • 2
    Easy and fast
  • 2
    Legacy
  • 1
    It's intuitive
  • 1
    Convention over configuration
  • 1
    Easy Testing
  • 1
    Cancan
CONS OF RAILS
  • 24
    Too much "magic" (hidden behavior)
  • 14
    Poor raw performance
  • 12
    Asset system is too primitive and outdated
  • 6
    Heavy use of mixins
  • 6
    Bloat in models
  • 4
    Very Very slow

related Rails posts

Zach Holman

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
Lead Engineer at StackShare · | 32 upvotes · 1.9M views

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
Flask logo

Flask

18.5K
15.4K
95
A microframework for Python based on Werkzeug, Jinja 2 and good intentions
18.5K
15.4K
+ 1
95
PROS OF FLASK
  • 14
    Flexibilty
  • 13
    Love it
  • 10
    For it flexibility
  • 9
    Flexibilty and easy to use
  • 8
    Flask
  • 7
    User friendly
  • 6
    Secured
  • 5
    Unopinionated
  • 3
    Orm
  • 2
    Secure
  • 1
    Rapid development
  • 1
    Not JS
  • 1
    Beautiful code
  • 1
    Easy to get started
  • 1
    Easy to develop and maintain applications
  • 1
    Easy to setup and get it going
  • 1
    Perfect for small to large projects with superb docs.
  • 1
    Get started quickly
  • 1
    Documentation
  • 1
    Easy to integrate
  • 1
    Python
  • 1
    Minimal
  • 1
    Lightweight
  • 1
    Speed
  • 1
    Easy to use
  • 1
    Customizable
  • 1
    Simple to use
  • 1
    Powerful
  • 0
    Well designed
  • 0
    Awesome
  • 0
    Productive
  • 0
    Expressive
  • 0
    Open source
CONS OF FLASK
  • 10
    Not JS
  • 7
    Context
  • 5
    Not fast
  • 1
    Don't has many module as in spring

related Flask posts

James Man
Software Engineer at Pinterest · | 45 upvotes · 2.6M views
Shared insights
on
FlaskFlaskReactReact
at

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

Hey, so I developed a basic application with Python. But to use it, you need a python interpreter. I want to add a GUI to make it more appealing. What should I choose to develop a GUI? I have very basic skills in front end development (CSS, JavaScript). I am fluent in python. I'm looking for a tool that is easy to use and doesn't require too much code knowledge. I have recently tried out Flask, but it is kinda complicated. Should I stick with it, move to Django, or is there another nice framework to use?

See more
Rails API logo

Rails API

95
141
16
Rails for API only applications
95
141
+ 1
16
PROS OF RAILS API
  • 5
    Great for quick decoupled apps
  • 5
    Lightweight
  • 3
    Simply the best
  • 2
    Soon to be merged into core Rails 5
  • 1
    Logging by default
CONS OF RAILS API
    Be the first to leave a con

    related Rails API posts

    Julien DeFrance
    Principal Software Engineer at Tophatter · | 16 upvotes · 2.8M views

    Back in 2014, I was given an opportunity to re-architect SmartZip Analytics platform, and flagship product: SmartTargeting. This is a SaaS software helping real estate professionals keeping up with their prospects and leads in a given neighborhood/territory, finding out (thanks to predictive analytics) who's the most likely to list/sell their home, and running cross-channel marketing automation against them: direct mail, online ads, email... The company also does provide Data APIs to Enterprise customers.

    I had inherited years and years of technical debt and I knew things had to change radically. The first enabler to this was to make use of the cloud and go with AWS, so we would stop re-inventing the wheel, and build around managed/scalable services.

    For the SaaS product, we kept on working with Rails as this was what my team had the most knowledge in. We've however broken up the monolith and decoupled the front-end application from the backend thanks to the use of Rails API so we'd get independently scalable micro-services from now on.

    Our various applications could now be deployed using AWS Elastic Beanstalk so we wouldn't waste any more efforts writing time-consuming Capistrano deployment scripts for instance. Combined with Docker so our application would run within its own container, independently from the underlying host configuration.

    Storage-wise, we went with Amazon S3 and ditched any pre-existing local or network storage people used to deal with in our legacy systems. On the database side: Amazon RDS / MySQL initially. Ultimately migrated to Amazon RDS for Aurora / MySQL when it got released. Once again, here you need a managed service your cloud provider handles for you.

    Future improvements / technology decisions included:

    Caching: Amazon ElastiCache / Memcached CDN: Amazon CloudFront Systems Integration: Segment / Zapier Data-warehousing: Amazon Redshift BI: Amazon Quicksight / Superset Search: Elasticsearch / Amazon Elasticsearch Service / Algolia Monitoring: New Relic

    As our usage grows, patterns changed, and/or our business needs evolved, my role as Engineering Manager then Director of Engineering was also to ensure my team kept on learning and innovating, while delivering on business value.

    One of these innovations was to get ourselves into Serverless : Adopting AWS Lambda was a big step forward. At the time, only available for Node.js (Not Ruby ) but a great way to handle cost efficiency, unpredictable traffic, sudden bursts of traffic... Ultimately you want the whole chain of services involved in a call to be serverless, and that's when we've started leveraging Amazon DynamoDB on these projects so they'd be fully scalable.

    See more
    Hanami logo

    Hanami

    42
    63
    25
    Web framework for Ruby
    42
    63
    + 1
    25
    PROS OF HANAMI
    • 8
      A light, fast, and very well documented web framework
    • 6
      Amazing ideas
    • 5
      Not Javascript
    • 3
      Ruby
    • 2
      Inspired in the clean architecture
    • 1
      Well-defined business logic layer
    CONS OF HANAMI
    • 0
      No job

    related Hanami posts

    Padrino logo

    Padrino

    28
    33
    9
    A powerful full-featured ruby framework built on top of the Sinatra
    28
    33
    + 1
    9
    PROS OF PADRINO
    • 4
      Microframework
    • 2
      Open source
    • 2
      Built on top of Sinatra
    • 1
      Beautiful code
    CONS OF PADRINO
      Be the first to leave a con

      related Padrino posts

      Mercury logo

      Mercury

      6
      12
      0
      A JSON-RPC library for Scala
      6
      12
      + 1
      0
      PROS OF MERCURY
        Be the first to leave a pro
        CONS OF MERCURY
          Be the first to leave a con

          related Mercury posts

          Grape logo

          Grape

          100
          104
          10
          An opinionated micro-framework for creating REST-like APIs in Ruby
          100
          104
          + 1
          10
          PROS OF GRAPE
          • 4
            Open source
          • 4
            Well documented
          • 2
            Can be used to apply good security to the whole API
          CONS OF GRAPE
          • 1
            Code structure makes reuse difficult

          related Grape posts

          ExpressJS logo

          ExpressJS

          32.5K
          22.4K
          1.6K
          Sinatra inspired web development framework for node.js -- insanely fast, flexible, and simple
          32.5K
          22.4K
          + 1
          1.6K
          PROS OF EXPRESSJS
          • 378
            Simple
          • 333
            Node.js
          • 242
            Javascript
          • 192
            High performance
          • 150
            Robust routing
          • 71
            Middlewares
          • 70
            Open source
          • 57
            Great community
          • 37
            Hybrid web applications
          • 13
            Well documented
          • 9
            Rapid development
          • 9
            Sinatra inspired
          • 7
            Isomorphic js.. superfast and easy
          • 6
            Socket connection
          • 5
            Light weight
          • 4
            Npm
          • 4
            Resource available for learning
          • 3
            Event loop
          • 3
            Callbacks
          • 2
            Data stream
          CONS OF EXPRESSJS
          • 27
            Not python
          • 17
            Overrated
          • 14
            No multithreading
          • 9
            Javascript
          • 5
            Not fast
          • 2
            Easily Insecure for Novices

          related ExpressJS posts

          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 27 upvotes · 4.1M views

          Our whole Node.js backend stack consists of the following tools:

          • Lerna as a tool for multi package and multi repository management
          • npm as package manager
          • NestJS as Node.js framework
          • TypeScript as programming language
          • ExpressJS as web server
          • Swagger UI for visualizing and interacting with the API’s resources
          • Postman as a tool for API development
          • TypeORM as object relational mapping layer
          • JSON Web Token for access token management

          The main reason we have chosen Node.js over PHP is related to the following artifacts:

          • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
          • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
          • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
          • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
          See more

          Repost

          Overview: To put it simply, we plan to use the MERN stack to build our web application. MongoDB will be used as our primary database. We will use ExpressJS alongside Node.js to set up our API endpoints. Additionally, we plan to use React to build our SPA on the client side and use Redis on the server side as our primary caching solution. Initially, while working on the project, we plan to deploy our server and client both on Heroku . However, Heroku is very limited and we will need the benefits of an Infrastructure as a Service so we will use Amazon EC2 to later deploy our final version of the application.

          Serverside: nodemon will allow us to automatically restart a running instance of our node app when files changes take place. We decided to use MongoDB because it is a non relational database which uses the Document Object Model. This allows a lot of flexibility as compared to a RDMS like SQL which requires a very structural model of data that does not change too much. Another strength of MongoDB is its ease in scalability. We will use Mongoose along side MongoDB to model our application data. Additionally, we will host our MongoDB cluster remotely on MongoDB Atlas. Bcrypt will be used to encrypt user passwords that will be stored in the DB. This is to avoid the risks of storing plain text passwords. Moreover, we will use Cloudinary to store images uploaded by the user. We will also use the Twilio SendGrid API to enable automated emails sent by our application. To protect private API endpoints, we will use JSON Web Token and Passport. Also, PayPal will be used as a payment gateway to accept payments from users.

          Client Side: As mentioned earlier, we will use React to build our SPA. React uses a virtual DOM which is very efficient in rendering a page. Also React will allow us to reuse components. Furthermore, it is very popular and there is a large community that uses React so it can be helpful if we run into issues. We also plan to make a cross platform mobile application later and using React will allow us to reuse a lot of our code with React Native. Redux will be used to manage state. Redux works great with React and will help us manage a global state in the app and avoid the complications of each component having its own state. Additionally, we will use Bootstrap components and custom CSS to style our app.

          Other: Git will be used for version control. During the later stages of our project, we will use Google Analytics to collect useful data regarding user interactions. Moreover, Slack will be our primary communication tool. Also, we will use Visual Studio Code as our primary code editor because it is very light weight and has a wide variety of extensions that will boost productivity. Postman will be used to interact with and debug our API endpoints.

          See more