mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Webevaluationupdated 27 Aug 2026

rails review

Ruby on Rails is a full-stack web framework built around the Model-View-Controller pattern. It supplies database models, routing, controllers, HTML views, mail, jobs, WebSockets, file attachments, and rich text so a Ruby team can build a database-backed application from one set of conventions.

+28stars / 7d
Verdict

Our Rails checkout could not finish its 19-second Yarn install because Node 22.23.2 was below one dependency's Node 24 minimum, so this commit needs a newer JavaScript toolchain even before the Ruby suite is considered. Rails is still a strong choice for a Ruby team that wants one opinionated framework across the product. Adopt it for the conventions and integrated components, not because the five-line quick start makes production operation simple.

We ran it

Lab card: what happened when we ran railsScreenshot of rails (rubyonrails.org)
Install✗ · 19s
Build—
Repo4986 files~581,280 lines of source · 39.3 MB · 10 CI workflows

Answers from our run

Does rails build from source?

The dependency install failed, and the project has no separate build step. We cloned commit f70a767 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use rails?

Teams unwilling to use Ruby and Rails conventions: the README's model, view, and controller layers are the framework's basic design.

What are the alternatives to rails?

Django, Laravel, Phoenix. Our Rails checkout could not finish its 19-second Yarn install because Node 22.

Setup2/5Yarn failed on Node 22 before build or tests could start
Docs5/5The README is brief, backed by deep guides and API references
Community5/558,720 stars with active August 2026 pushes and review traffic
Maturity5/5Rails 8.1 receives active maintenance and security-focused patches

Discussed on

  1. hnHacked: commit to rails master on GitHub655 points
  2. hnToday Rails turns 10 years old394 points
  3. hnRails 3.1 shipping with CoffeeScript320 points
  4. hnDrop jQuery as a dependency from Rails292 points
  5. hnRails 5.0.0.rc1283 points

Who it’s for

Ruby teams building database-backed web products with server-rendered HTML or JSON endpoints.
Small product groups that want routing, persistence, mail, jobs, files, and tests to follow shared conventions.
Long-lived applications that value stable framework components and extensive guides.
Developers willing to adopt Rails naming, directory, migration, and MVC patterns across the application.

Who it’s NOT for

Teams unwilling to use Ruby and Rails conventions: the README's model, view, and controller layers are the framework's basic design.
Developers who need the supplied lab run to prove Rails installs on their stack: Yarn stopped on Node 22 before any build or test step.
Applications that must transform BMP, ICO, or PSD attachments through ruby-vips unchanged: release 8.1.3.1 blocks unfuzzed loaders and savers for security.
Buyers wanting a narrow HTTP router or ORM only: Rails bundles Active Record, Action View, jobs, mail, WebSockets, storage, rich text, and more, although components can be used separately.

Setup reality

Our sandbox's Yarn install failed after 19 seconds, before build or tests. errorstacks@2.4.2 required Node 24 or newer, while the image provided Node 22.23.2. No package count was reported, and we did not run a build or test command.

That result covers the repository's Node workspace, not gem install rails or a generated Ruby application. Real Rails setup needs Ruby, RubyGems or Bundler, a database, and any services chosen for jobs, caching, mail, files, or WebSockets.

The README quick start is short, but production choices are not. Database credentials, secret management, migrations, background workers, asset tooling, storage, and deployment remain application work. Release 8.1.3.1 also raises libvips and ruby-vips minimums for secured image processing.

Rails puts an entire database-backed web product under one convention

Rails covers the path from an HTTP request to a database record and an HTML response. Active Record maps rows to Ruby objects, Action Pack handles routing and controllers, and Action View renders templates. The same repository includes mail delivery and receipt, background jobs, WebSockets, file attachments, rich text, and shared Ruby utilities. A product team can use one vocabulary and directory structure instead of selecting a library for every layer.

That integrated design is Rails' main advantage and its clearest constraint. Models inherit behavior, controllers follow routing rules, migrations describe schema changes, and generators create familiar files. Our checkout was 39.3 MB with 4,986 files and about 581,280 source lines. You are joining a large framework, not adding a small request handler. Teams that routinely replace conventions with custom architecture will spend much of their time working around the thing they chose.

The five-step quick start omits the production services

The README gets a local application on screen with gem install rails, rails new, and bin/rails server. That is an honest first contact with Rails, but a deployed product still needs a database, secrets, migrations, mail transport, file storage, background workers, caching, observability, and backups according to the components it uses. Rails supplies interfaces and defaults for many of these choices; it does not operate the services for you.

Modern Rails repositories also have JavaScript tooling even when most application code is Ruby. The supplied scan identified a Yarn monorepo workspace, and our install stopped after 19 seconds because one package required Node 24 or newer. This matters for contributors working on the framework checkout. It does not prove that a generated Rails application or released gem fails under the same conditions, because neither was installed in our sandbox.

What happened when we ran it

Our sandbox cloned commit f70a767 and started yarn install with Yarn 1.22.22 on Node 22.23.2. Dependency resolution and fetching began, then errorstacks@2.4.2 rejected the runtime because it expected Node 24 or newer. The command exited with code 1 after 19 seconds. No install package count was produced.

Because installation failed, we did not run a build or any tests. There is no timing or pass count to infer from later stages. The environment was an unprivileged container with 3 CPUs and 8 GB of RAM, and the log shows a direct engine-version mismatch rather than a missing secret or network failure. Moving to Node 24 is the next check; saying it fixes every later step would go beyond the evidence.

Active Record saves code by making database choices visible

Active Record gives Rails much of its speed of development. Models express relationships, validations, callbacks, and query scopes in Ruby, while migrations travel with the application. The cost is that database behavior still matters. Query count, indexes, transactions, locks, connection pools, schema rollout order, and adapter differences can surface through a pleasant object interface. A team needs SQL judgment even when routine reads rarely contain SQL strings.

Current pull requests show that complexity clearly. One change separates cached model schema state by connection pool so different shards do not leak column knowledge into one another. Another proposes better connection errors now that Rails applications can use 4 databases by default for primary data, cache, queue, and cable. Those are valuable conventions for a full product, but they also mean deployment configuration spans more than one database role.

Release 8.1.3.1 trades image compatibility for safer processing

Rails 8.1.3.1 was published on July 29, 2026, and its meaningful change is in Active Storage. Rails now tells libvips to block loaders and savers marked unfuzzed or untrusted. BMP, ICO, and PSD transformations can raise Vips::Error; analysis for those and other formats may stop recording dimensions. The minimum supported libvips is 8.13, and ruby-vips must be at least 2.2.1.

That is a sensible security boundary for uploads, but it can break applications with unusual media workflows. Attaching, storing, and downloading remain unchanged, while variant generation and analysis are affected. The release notes describe an initializer workaround that removes affected types from variable content. Test the formats users already uploaded before updating, especially if transformations occur during a web request rather than in a job.

August activity supports Rails as a long-term dependency

GitHub recorded 58,720 stars, 1,602 combined issues and pull requests, and a last push on August 27, 2026. The open queue includes work on sharding, Ractors, associations, browser checks, cache clients, test preparation, and documentation. That is active framework maintenance across many layers. The combined count includes proposed code and should not be described as 1,602 confirmed defects.

Rails remains easiest to recommend when the team already likes Ruby and wants the framework to settle recurring product decisions. Our 19-second install failure lowers confidence in this exact checkout under Node 22, yet it does not erase the framework's production history or documentation. Pin Ruby, Node, Rails, and image-processing dependencies, run the application suite against the real database roles, and upgrade with release notes in hand. If the conventions feel restrictive during a prototype, they will feel worse after years of code.

Alternatives

ProjectWhat it isPick it when
Django gh↗A Python web framework with an ORM, admin, forms, and established conventions.pick this instead when the team is stronger in Python and wants a similarly integrated server framework.
Laravel gh↗A PHP application framework covering routing, ORM, queues, mail, and common product needs.pick this instead when PHP deployment and the Laravel ecosystem fit the organization better than Ruby.
Phoenix gh↗An Elixir web framework built for concurrent applications and realtime features.pick this instead when BEAM concurrency and Elixir are deliberate technical choices.

What people are saying

  1. [lobsters] Rails is done

Sources

  1. Rails README
  2. Rails repository
  3. Rails 8.1.3.1 release
  4. Connection-pool schema state pull request
  5. Multi-database error-message pull request

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →