Alternatives to Sinatra logo

Alternatives to Sinatra

Rails, Flask, Rails API, Hanami, and Padrino are the most popular alternatives and competitors to Sinatra.
1K
501
+ 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 12.3K 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. ...

  • JavaScript
    JavaScript

    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles. ...

Sinatra alternatives & related posts

Rails logo

Rails

19.7K
5.5K
Web development that doesn't hurt
19.7K
5.5K
PROS OF RAILS
  • 860
    Rapid development
  • 653
    Great gems
  • 607
    Great community
  • 486
    Convention over configuration
  • 418
    Mvc
  • 349
    Great for web
  • 345
    Beautiful code
  • 312
    Open source
  • 271
    Great libraries
  • 262
    Active record
  • 109
    Elegant
  • 91
    Easy to learn
  • 89
    Easy Database Migrations
  • 83
    Makes you happy
  • 76
    Free
  • 63
    Great routing
  • 54
    Has everything you need to get the job done
  • 42
    Great Data Modeling
  • 38
    MVC - Easy to start on
  • 38
    Beautiful
  • 36
    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
    Quick
  • 5
    Easy REST API creation
  • 4
    Easy to learn, use, improvise and update
  • 4
    Great language
  • 4
    Intuitive
  • 4
    Haml and sass
  • 2
    Convention over configuration
  • 2
    Jet packs come standard
  • 2
    Easy and fast
  • 2
    Legacy
  • 2
    Metaprogramming
  • 2
    It works
  • 1
    Cancan
  • 1
    Easy Testing
  • 1
    It's intuitive
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 · 3M 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

19.2K
60
A microframework for Python based on Werkzeug, Jinja 2 and good intentions
19.2K
60
PROS OF FLASK
  • 10
    For it flexibility
  • 9
    Flexibilty and easy to use
  • 7
    User friendly
  • 6
    Secured
  • 5
    Unopinionated
  • 2
    Secure
  • 2
    Customizable
  • 1
    Simple to use
  • 1
    Powerful
  • 1
    Rapid development
  • 1
    Flask
  • 1
    Easy to get started
  • 1
    Easy to develop and maintain applications
  • 1
    Easy to setup and get it going
  • 1
    Easy to use
  • 1
    Documentation
  • 1
    Beautiful code
  • 1
    Orm
  • 1
    Not JS
  • 1
    Perfect for small to large projects with superb docs.
  • 1
    Easy to integrate
  • 1
    Speed
  • 1
    Get started quickly
  • 1
    Python
  • 1
    Minimal
  • 1
    Lightweight
  • 0
    Flexibilty
  • 0
    Well designed
  • 0
    Productive
  • 0
    Awesome
  • 0
    Open source
  • 0
    Expressive
  • 0
    Love it
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 · | 47 upvotes · 3M 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
16
Rails for API only applications
95
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 · 3.3M 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
    Ladi Adeniran
    `Backend Engineer at Ketchup Academy · | 2 upvotes · 2.9K views
    Shared insights
    on
    Vue.jsVue.jsRails APIRails API

    I am currently thinking of adding search capabilities to a Rails API consumed by a Vue.js app, and I want to decide what tool is best to use for the search.

    See more
    Hanami logo

    Hanami

    42
    25
    Web framework for Ruby
    42
    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
    9
    A powerful full-featured ruby framework built on top of the Sinatra
    28
    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

      7
      0
      A JSON-RPC library for Scala
      7
      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

          105
          10
          An opinionated micro-framework for creating REST-like APIs in Ruby
          105
          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

          JavaScript logo

          JavaScript

          370.4K
          8.1K
          Lightweight, interpreted, object-oriented language with first-class functions
          370.4K
          8.1K
          PROS OF JAVASCRIPT
          • 1.7K
            Can be used on frontend/backend
          • 1.5K
            It's everywhere
          • 1.2K
            Lots of great frameworks
          • 899
            Fast
          • 746
            Light weight
          • 425
            Flexible
          • 392
            You can't get a device today that doesn't run js
          • 286
            Non-blocking i/o
          • 237
            Ubiquitousness
          • 191
            Expressive
          • 55
            Extended functionality to web pages
          • 49
            Relatively easy language
          • 46
            Executed on the client side
          • 30
            Relatively fast to the end user
          • 25
            Pure Javascript
          • 21
            Functional programming
          • 15
            Async
          • 13
            Full-stack
          • 12
            Its everywhere
          • 12
            Future Language of The Web
          • 12
            Setup is easy
          • 11
            JavaScript is the New PHP
          • 11
            Because I love functions
          • 10
            Like it or not, JS is part of the web standard
          • 9
            Everyone use it
          • 9
            Can be used in backend, frontend and DB
          • 9
            Easy
          • 9
            Expansive community
          • 8
            For the good parts
          • 8
            Easy to hire developers
          • 8
            No need to use PHP
          • 8
            Most Popular Language in the World
          • 8
            Powerful
          • 8
            Can be used both as frontend and backend as well
          • 7
            It's fun
          • 7
            Its fun and fast
          • 7
            Popularized Class-Less Architecture & Lambdas
          • 7
            Agile, packages simple to use
          • 7
            Supports lambdas and closures
          • 7
            Love-hate relationship
          • 7
            Photoshop has 3 JS runtimes built in
          • 7
            Evolution of C
          • 7
            Hard not to use
          • 7
            Versitile
          • 7
            Nice
          • 6
            Easy to make something
          • 6
            Can be used on frontend/backend/Mobile/create PRO Ui
          • 6
            1.6K Can be used on frontend/backend
          • 6
            Client side JS uses the visitors CPU to save Server Res
          • 6
            It let's me use Babel & Typescript
          • 5
            Clojurescript
          • 5
            Everywhere
          • 5
            Scope manipulation
          • 5
            Function expressions are useful for callbacks
          • 5
            Stockholm Syndrome
          • 5
            Promise relationship
          • 5
            Client processing
          • 5
            What to add
          • 4
            Because it is so simple and lightweight
          • 4
            Only Programming language on browser
          • 1
            Subskill #4
          • 1
            Test2
          • 1
            Easy to understand
          • 1
            Not the best
          • 1
            Easy to learn
          • 1
            Hard to learn
          • 1
            Easy to learn and test
          • 1
            Love it
          • 1
            Test
          • 0
            Hard 彤
          CONS OF JAVASCRIPT
          • 22
            A constant moving target, too much churn
          • 20
            Horribly inconsistent
          • 15
            Javascript is the New PHP
          • 9
            No ability to monitor memory utilitization
          • 8
            Shows Zero output in case of ANY error
          • 7
            Thinks strange results are better than errors
          • 6
            Can be ugly
          • 3
            No GitHub
          • 2
            Slow
          • 0
            HORRIBLE DOCUMENTS, faulty code, repo has bugs

          related JavaScript 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
          Conor Myhrvold
          Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 13.3M views

          How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

          Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

          Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

          https://eng.uber.com/distributed-tracing/

          (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

          Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

          See more