01:05:46
David Heinemeier Hansson's keynote at Rails World 2024 unveiled Rails 8, a release focused on reclaiming simplicity, invalidating outdated patterns, and empowering developers to own their full stack—from local development to production deployment—without the heavy reliance on complex, costly third-party services.
Rails 7 marked a pivotal shift in the framework's trajectory. It moved away from following industry trends and instead reasserted a confident vision for web development. This change was driven by a fundamental shift in the underlying web technology context:
This new context invalidated the old patterns of complex build pipelines, bundling, and transpiling. Hotwire emerged as the answer—a modern, modest JavaScript approach that works in harmony with the backend, perfectly suited for this new era.
A core tenet of this new philosophy is the "no build" approach. By relying on the modern browser's capabilities, Rails applications can ship JavaScript and CSS exactly as written, without complex compilation steps.
The benefits are profound:
This isn't just theoretical. The HEY email application at 37signals runs with zero build pipelines for both JavaScript and CSS, serving as an irrefutable monument to the approach's viability.
Rails has always excelled at the "Hello World" experience—the initial onboarding. The mission for Rails 8 is to build a robust bridge from that starting point all the way to a production-ready application ("IPO"), with a focus on simplifying deployment.
This mission confronts a pervasive industry issue: server phobia. Many developers have been convinced that managing servers is too difficult, leading to a reliance on expensive Platform-as-a-Service (PaaS) providers. The premiums charged for this abstraction are often egregious compared to the cost of raw hardware.
Rails 8 aims to cure this phobia by providing tools that make deploying to your own hardware (or any cloud VM) as straightforward as using a PaaS, but at a fraction of the cost.
Rails 8 will ship with a generated authentication system instead of bundling a third-party gem like Devise. This approach has several advantages:
With the old context invalidated, the new asset pipeline, Propshaft, is a clean-slate design. It's incredibly simple, focusing on two core jobs in the modern "no build" context:
Its codebase is small, easy to understand, and embodies the new Rails ethos.
A major theme is consolidating dependencies. The "Solid" suite provides high-performance, database-backed adapters for three key functions, often eliminating the need for separate services like Redis.
Component | Replaces | Key Benefit |
---|---|---|
Solid Cable | Redis for Action Cable | Uses SQLite, performs within 50% of in-memory Redis. |
Solid Cache | Redis/Memcached | Supports encryption, long retention policies. Used in production at 37signals for 10TB of cache. |
Solid Queue | Redis/Sidekiq, Resque | Full-featured, high-performance job system. Powers ~100M jobs/day across 37signals. |
The default Rails 8 setup uses SQLite for all four databases (main, cache, queue, cable), drastically simplifying the initial production stack.
The culmination of the Rails 8 vision is a seamless deployment story powered by Kamal 2 and its built-in proxy, Thruster.
Thruster is a Go-based proxy that runs in front of Puma by default in the Rails Docker image. It provides essential production features with zero configuration:
Kamal 2 is the deployment tool that makes everything click. Its goals are:
A live demo during the keynote showed two separate Rails applications (with and without Tailwind CSS) deployed to production on a single Hetzner server, with live Action Cable updates, all set up in minutes with a simple kamal setup
command.
Beyond the immediate Rails 8 features, DHH teased several upcoming projects that continue the theme of simplification and integration:
Rails 8 represents a significant compression of complexity. It challenges entrenched industry norms by proving that simpler, more understandable, and more affordable paths are not only possible but are often superior. By focusing on the developer's brain budget and optimizing for the full journey from beginner to scale, Rails 8 reaffirms its position as a framework that empowers developers to build and deploy serious software with confidence and joy.