Rails
Rails

8K
5K
+ 1
5.2K
Sinatra
Sinatra

383
287
+ 1
209
Add tool

Rails vs Sinatra: What are the differences?

Rails: Web development that doesn't hurt. Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern; Sinatra: Classy web-development dressed in a DSL. Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.

Rails and Sinatra are primarily classified as "Frameworks (Full Stack)" and "Microframeworks (Backend)" tools respectively.

"Rapid development" is the top reason why over 822 developers like Rails, while over 63 developers mention "Lightweight" as the leading cause for choosing Sinatra.

Rails and Sinatra are both open source tools. It seems that Rails with 43.6K GitHub stars and 17.5K forks on GitHub has more adoption than Sinatra with 10.6K GitHub stars and 1.9K GitHub forks.

According to the StackShare community, Rails has a broader approval, being mentioned in 2322 company stacks & 798 developers stacks; compared to Sinatra, which is listed in 92 company stacks and 34 developer stacks.

What is 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.

What is Sinatra?

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

Want advice about which of these to choose?Ask the StackShare community!

Why do developers choose Rails?
Why do developers choose Sinatra?

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

What are the cons of using Rails?
What are the cons of using Sinatra?
    Be the first to leave a con

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

    What companies use Rails?
    What companies use Sinatra?

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

    What tools integrate with Rails?
    What tools integrate with Sinatra?

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

    What are some alternatives to Rails and Sinatra?
    Django
    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
    Ruby
    Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
    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.
    Laravel
    It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
    Node.js
    Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
    See all alternatives
    Decisions about Rails and Sinatra
    No stack decisions found
    Interest over time
    Reviews of Rails and Sinatra
    No reviews found
    How developers use Rails and Sinatra
    Avatar of StackShare
    StackShare uses RailsRails

    The first live version of Leanstack was actually a WordPress site. There wasn’t a whole lot going on at first. We had static pages with static content that needed to be updated manually. Then came the concept of user-generated content and we made the switch to a full on Rails app in November of last year. Nick had a lot of experience with Rails so that made the decision pretty easy. But I had also played around with Rails previously and was comfortable working with it. I also knew I’d need to hire engineers with a lot more experience building web apps than I do, so I wanted to go with a language and framework other people would have experience with. Also, the sheer number of gems and tools available for Rails is pretty amazing (shout to RubyToolbox ).

    I don’t see us ever having to move away from Rails really, but I could be wrong. Leanstack was built in Rails 3. For StackShare we decided to upgrade to Rails 4. Biggest issue with that has been caching. DHH decided to remove the standard page and action caching in favor of key-based caching (source)[http://edgeguides.rubyonrails.org/caching_with_rails.html#page-caching]. Probably a good thing from a framework-perspective. But pretty shitty to have to learn about that after testing out your new app and realizing nothing is cached anymore :( We’ll need to spend some more time implementing "Russian Doll Caching", but for now we’ve got a random mixture of fragment and action caching (usually one or the other) based on which pages are most popular.

    Avatar of Karma
    Karma uses RailsRails

    We use Rails for webpages and projects, not for backend services. Actually if you click through our website, you won't notice it but you're clicking though, I think, seven or eight different Rails projects. We tie those all together with a front-end library that we wrote, which basically makes sure that you have a consistent experience over all these different Rails apps.

    It's a gem, we call it Karmeleon. It's not a gem that we released. It's an internal gem. Basically what it does is it makes sure that we have a consistent layout across multiple Rails apps. Then we can share stuff like a menu bar or footer or that kind of stuff.

    So if we start a new front end project it's always a Rails application. We pull in the Karmeleon gem with all our styling stuff and then basically the application is almost ready to be deployed. That would be an empty page, but you would still have top bar, footer, you have some custom components that you can immediately use. So it kind of bootstraps our entire project to be a front end project.

    Avatar of datapile
    datapile uses SinatraSinatra

    Scalatra (we had to pick Sinatra on StackShare since Scalatra is has not yet been officially added) is the slickest (not to be confused with Slick for Scala) web/applet server framework we've had the pleasure of playing with in Scala.

    For all intensive purposes, Scalatra is the Scala version of Sinatra (which for anyone who doesn't know is a Ruby web server DSL).

    Avatar of Instacart
    Instacart uses RailsRails

    Web has always been in Rails from the beginning, so we used Redis for caching our items, which we had, from the beginning. Rails is kind of what we were comfortable with, and we knew we wanted the front end to be really, really snappy, so we de-normalized all the item attributes into Redis, and that's how it got served out.

    Avatar of Tim Lucas
    Tim Lucas uses RailsRails

    Rails 5 (beta 3) provided a nice structure for rendering responses, linking to front-end assets (compiled previously via Webpack), handling sessions w/ tailor made login links via an email button/token, background jobs, and creating an admin behind basic auth to allow managing of users and purchases.

    Avatar of Ngakkan Nyaagu
    Ngakkan Nyaagu uses RailsRails

    For this project rails was ideal due to new features introduced in Rails 5 that allowed us to build a lightweight "API only" project. Developer familiarity and the ability to rapidly iterate, as well as providing an accessible testing framework were additional factors.

    Avatar of Karma
    Karma uses SinatraSinatra

    We use Sinatra a lot. I love Sinatra for APIs. It's really simple, really lightweight. It's awesome.

    Avatar of David Sugar
    David Sugar uses SinatraSinatra

    Typically used for web api services such as in piwitch

    Avatar of EdgeTheory
    EdgeTheory uses SinatraSinatra

    Microservices, RESTful APIs

    Avatar of Satoru Ishikawa
    Satoru Ishikawa uses SinatraSinatra

    WebAPIつくるのに。

    How much does Rails cost?
    How much does Sinatra cost?
    Pricing unavailable
    Pricing unavailable