Rails 8
β¨ Rails 8 β The Upgrade That Feels Like Magic ππͺ
The release of Ruby on Rails 8 is not just another framework update β itβs a bold step toward simpler deployments, fewer dependencies, faster apps, and a more developer-friendly ecosystem.
Rails 8 focuses heavily on:
- β‘ Performance
- βοΈ Simpler Infrastructure
- π Better Security
- π§° Built-in Production Tools
- π§Ή Cleaner Defaults
For years, Rails developers relied on external tools like Redis, Sidekiq, Devise, Nginx, and Sprockets. Rails 8 says:
βWhy depend on 10 tools when Rails can handle most of it elegantly?β π
Letβs explore every magical upgrade in detail.
π Why Rails 8 Is a Game Changer
Rails 8 introduces:
- π§ Smarter defaults
- π Faster deployment pipelines
- ποΈ Infrastructure simplification
- π° Reduced hosting costs
- π₯ Better production readiness
The biggest philosophy change?
π Rails 8 reduces external dependencies dramatically.
This means:
- Less DevOps pain
- Easier scaling
- Lower infrastructure cost
- Faster onboarding
According to the official Rails 8 release notes, Rails now includes features like Solid Queue, Solid Cache, Kamal 2, Thruster, and a built-in authentication generator. (Ruby on Rails Guides)
π₯ Major Features Introduced in Rails 8
1οΈβ£ Solid Queue β Goodbye Sidekiq & Redis π
One of the biggest highlights of Rails 8 is:
βοΈ Solid Queue
Rails now includes a database-backed background job system.
Before Rails 8:
Sidekiq + Redis
Now:
Solid Queue
β Why Itβs Magical
You no longer need:
- Redis
- Sidekiq
- Resque
- Delayed Job
Rails can now use:
- PostgreSQL
- MySQL
- SQLite
for background jobs directly.
π§ͺ Example
Before
class WelcomeJob
include Sidekiq::Job
def perform(user_id)
UserMailer.welcome(user_id).deliver_now
end
end
Rails 8
class WelcomeJob < ApplicationJob
queue_as :default
def perform(user_id)
UserMailer.welcome(user_id).deliver_now
end
end
β‘ Optimization Done
Rails 8 uses database locking optimizations:
FOR\ UPDATE\ SKIP\ LOCKED
This improves:
- Parallel job execution
- Queue processing efficiency
- Worker scalability
Rails mentions support for PostgreSQL, MySQL, and SQLite. (Ruby on Rails Guides)
2οΈβ£ Solid Cache β Redis-Free Caching β‘
Caching is essential for performance.
Traditionally:
Redis
Memcached
Now Rails introduces:
π Solid Cache
A database-backed cache store.
π§ͺ Example
config.cache_store = :solid_cache_store
Thatβs it π
π Benefits
β Less infrastructure β Fewer services to manage β Easier deployments β Lower hosting costs β Persistent cache storage
β‘ Optimization Highlights
Solid Cache uses:
- SSD/NVMe disk optimization
- Larger cache retention
- Better persistence than RAM-only systems
Some production systems reportedly reduced render times significantly using Solid Cache. (reddit.com)
3οΈβ£ Solid Cable β WebSockets Without Redis π
Before Rails 8:
ActionCable + Redis
Now:
ActionCable + Solid Cable
π‘ What It Does
Solid Cable stores pub/sub messages in the database.
This removes the need for Redis in:
- Chat apps
- Notifications
- Real-time dashboards
π§ͺ Example
config.action_cable.adapter = :solid_cable
Simple. Elegant. Rails-like β¨
4οΈβ£ Built-In Authentication Generator π
Rails 8 introduces a native authentication generator.
This is HUGE.
For years developers used:
- Devise
- Sorcery
- Clearance
Now Rails includes:
bin/rails generate authentication
π€―
Generated Features
Rails automatically creates:
- User model
- Session handling
- Password reset
- Authentication controllers
- Mailers
- Session tracking
π§ͺ Example
Generated session login:
class SessionsController < ApplicationController
def create
user = User.authenticate_by(email: params[:email], password: params[:password])
if user
start_new_session_for user
else
redirect_to sign_in_path
end
end
end
π₯ Why This Matters
β Faster MVP development β Less gem dependency β Better security defaults β Rails-native authentication flow
5οΈβ£ Kamal 2 β Deployment Becomes Beautiful π
Rails 8 ships with:
βοΈ Kamal 2
A modern deployment solution.
Before Rails 8
Developers struggled with:
- Capistrano
- Complex Docker setup
- Heroku lock-in
- Kubernetes complexity
Now:
kamal setup
kamal deploy
Done π
β¨ Features
β Zero downtime deployment β Docker-based β Simple VPS deployment β Easier scaling β Built-in proxy handling
π§ͺ Example Deployment Config
service: myapp
servers:
web:
- 192.168.1.10
proxy:
ssl: true
β‘ Optimization Done
Kamal 2:
- Simplifies CI/CD
- Reduces infrastructure complexity
- Eliminates many manual deployment steps
Some developers on Reddit mention migration friction for legacy apps, but new Rails 8 projects integrate very smoothly. (reddit.com)
6οΈβ£ Thruster β Built-In Proxy Performance π
Rails 8 introduces:
β‘ Thruster
A lightweight proxy replacing many Nginx responsibilities.
What It Handles
β Asset caching β Compression β X-Sendfile acceleration β Puma optimization
Why Itβs Awesome
Traditional stack:
Rails + Puma + Nginx
Rails 8:
Rails + Puma + Thruster
Fewer moving parts π₯
7οΈβ£ Propshaft Replaces Sprockets π¨
Rails finally modernizes asset handling.
Old System
Sprockets
New Default
Propshaft
Why Propshaft?
β Simpler β Faster β Better modern JS support β Cleaner architecture
Benefits
Rails now works more naturally with:
- ESBuild
- Bun
- Import Maps
- Modern frontend tooling
8οΈβ£ SQLite Production Improvements ποΈ
Rails 8 surprisingly pushes SQLite further into production readiness.
Why?
Modern SSDs + SQLite performance = π₯
Rails 8 optimizes:
- Concurrent reads
- Simpler deployments
- Embedded databases
This is especially useful for:
- SaaS MVPs
- Side projects
- Medium-scale apps
(Mintbit)
9οΈβ£ Better Async Queries β‘
Rails 8 improves asynchronous database loading.
π§ͺ Example
@users = User.where(active: true).load_async
Benefits:
- Faster response times
- Better concurrency
- Improved throughput
π₯ Major Deprecations & Removals
Rails 8 also removes or discourages older approaches.
β Sprockets Is No Longer Default
Rails wants developers to move toward:
- Propshaft
- ESBuild
- Modern bundlers
β Redis Dependency Reduced
Redis is no longer mandatory for:
- Caching
- Jobs
- ActionCable
Huge architectural change π
β Older Deployment Patterns
Traditional:
- Capistrano-heavy deployments
- Manual server configs
are now discouraged in favor of:
- Docker
- Kamal
- Containerized deployments
π§ Architecture Philosophy Shift in Rails 8
Rails 8 promotes:
βOne Database Can Do Moreβ
Instead of:
Postgres + Redis + Sidekiq + Memcached + Nginx
Rails 8 encourages:
Postgres + Rails
That simplicity is the real magic β¨
β‘ Performance Optimizations in Rails 8
π Faster Deployments
Using:
- Kamal 2
- Docker optimization
- Thruster proxy
π Reduced Infrastructure Cost
By removing:
- Redis
- Memcached
- Extra queue systems
Some teams report major infrastructure reduction after migration. (elaris.software)
π Better Database Efficiency
Using:
- SKIP LOCKED queries
- Improved async loading
- Database-backed caching
π Improved Developer Productivity
Rails 8 reduces:
- Boilerplate
- Third-party setup
- Configuration complexity
π§ͺ Example β Full Rails 8 Stack
Rails 8
βββ Solid Queue
βββ Solid Cache
βββ Solid Cable
βββ Kamal 2
βββ Thruster
βββ Propshaft
βββ Built-in Authentication
Minimal dependencies. Maximum productivity π₯
π οΈ Migration Tips for Existing Rails Apps
β Upgrade Gradually
Recommended path:
Rails 6 β Rails 7.2 β Rails 8
Rails officially recommends upgrading to Rails 7.2 first before moving to 8.0. (Ruby on Rails Guides)
β Donβt Replace Everything Immediately
You can still keep:
- Sidekiq
- Redis
- Devise
Rails 8 is flexible.
β Test Infrastructure Carefully
Especially:
- Background jobs
- WebSockets
- Deployment pipeline
π― Should You Upgrade to Rails 8?
YES β if you want:
β Simpler infrastructure β Lower DevOps overhead β Better defaults β Modern deployment workflows β Faster development β Reduced dependency management
β οΈ Be Careful If
β You run very large Redis-heavy systems β You have complex Sidekiq workflows β Your deployment pipeline is deeply customized
π Final Verdict β Rails 8 Is Peak Developer Happiness
Rails 8 is more than a framework update.
Itβs a philosophical shift toward:
- simplicity,
- ownership,
- productivity,
- and operational elegance.
It reduces:
- dependencies,
- complexity,
- infrastructure pain,
- and configuration overload.
And increases:
- speed,
- maintainability,
- developer joy,
- and deployment confidence.
Thatβs why Rails 8 truly feels magical πͺβ¨
π¬ Final Thought
βRails 8 is not trying to compete with complexity. Itβs trying to eliminate it.β π
π References & Release Notes
© Lakhveer Singh Rajput - Blogs. All Rights Reserved.