The framework that defined "convention over configuration." Twenty years on, Rails still ships full-stack web apps faster than almost anything else — and powers GitHub, Shopify, and Basecamp.
← Back to Server Siderails generate scaffold Product name:string price:decimal creates model, controller, views, migration, tests.# app/models/product.rb class Product < ApplicationRecord validates :name, presence: true validates :price, numericality: { greater_than: 0 } scope :affordable, -> { where("price < ?", 100) } end # app/controllers/products_controller.rb class ProductsController < ApplicationController def index @products = Product.affordable.order(created_at: :desc) end def create @product = Product.new(product_params) @product.save ? redirect_to(@product) : render(:new) end private def product_params params.require(:product).permit(:name, :price) end end
Pythonic-readable Ruby queries, automatic migrations, associations (has_many, belongs_to), validations, callbacks. The most expressive ORM in any language.
Rails' modern answer to SPAs without writing much JavaScript. Turbo swaps page fragments over WebSockets; Stimulus sprinkles minimal JS behavior. Powers Hey and Basecamp.
Rails 7 brought ESM-friendly asset handling (importmap-rails) and Hotwire defaults. Rails 8 adds Solid Queue / Cache / Cable (DB-backed alternatives to Redis) and Kamal for one-command deploys.
| Gem | Purpose |
|---|---|
| Devise | Authentication. |
| Pundit / CanCanCan | Authorization. |
| Sidekiq | Background jobs. |
| RSpec / Minitest | Testing. |
| Pagy / Kaminari | Pagination. |
The original Rails sweet spot — Shopify is the largest example.
Scaffolding gets you to "working CRUD" in minutes.
One-person Rails app + Hotwire scales surprisingly far.
Mature gems for blogs, e-commerce, CMS.