06 January 2026

Rails 8, choo choo

In which I get to use the latest rails!

ai generate psychedelic train in space

The basics

We got to write some new greenfield projects recently, thanks to Foxsoft’s excellent learning weeks. A rare treat. As such, I wrote it down for my future self, so this isn’t for rails newbies, but for devs familiar with the latest few versions of Rails.

rails new myapp

Gets you SQLite3, Propshaft for assets, and Kamal for deployments by default. No Redis needed anymore.

Solid everything

Rails 8 defaults to database-backed adapters:

  • Solid Queue for background jobs (no Sidekiq)
  • Solid Cache for caching
  • Solid Cable for Action Cable

Skip them all with --skip-solid (if you want)

Skip what you don’t need

--skip-kamal - Don’t generate deployment config. I have a love/hate relationship with kamal --skip-docker - No Dockerfile
--skip-solid - Opt out of Solid adapters
-T - Skip test files
--api - API-only mode

Database options

-d postgresql - Use Postgres
-d mysql - MySQL
-d trilogy - Trilogy adapter

Default is SQLite3, which is actually production-ready now.

CSS frameworks

Rails 8 still supports the --css flag:

rails new myapp --css=bootstrap
rails new myapp --css=tailwind
rails new myapp --css=sass

This hasn’t changed from Rails 7. Bootstrap sets up with cssbundling-rails, Tailwind uses tailwindcss-rails. Or go wild and go vanilla.

Authentication

Rails 8 ships with a native auth generator. After creating your app:

rails generate authentication

Creates session handling, password resets, the works. No Devise needed.

Typecraft has a video walkthrough of the new auth system. His kooky style makes Rails tutorials semi-entertaining.

What changed from Rails 7

  • Propshaft replaced Sprockets
  • Kamal added by default
  • Solid adapters are the new defaults
  • SQLite got production-grade upgrades

The “No PaaS Required” tagline is real. You can deploy to your own hardware without Redis, Sidekiq, or platform lock-in, which I appreciate.

Still want Redis?

You might need it if you’re dealing with thousands of concurrent WebSocket connection, sub-millisecond cache response times, yada yada, but it’s simple to clamp on later For most apps, the Solid adapters are fine. But if you know you need Redis performance, here’s how:

Skip Solid entirely:

rails new myapp --skip-solid

This brings back Redis for Action Cable, caching, and background jobs. The dev container will include Redis automatically.

Or add it later:

Just swap the adapters in your environment configs. For caching:

# config/environments/production.rb
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }

For Action Cable, update config/cable.yml. For jobs, switch to Sidekiq in your Gemfile and set the adapter.

You can also mix and match - use Solid Queue but Redis for caching, or vice versa.

The .railsrc trick

Put common flags in ~/.railsrc:

-d postgresql
--skip-test

They’ll apply to every rails new command.


Finding docs

I looked for basic info on rails new options for Rails 8 and mostly found SEO spam and slop. The official rails command line guide has the details but doesn’t explain much about the new Rails 8 defaults.

Run rails new --help to see all options. The 8.0 release notes cover the broader changes.


That’s it. Rails 8 makes it easier to ship without a platform. The defaults are opinionated but you can skip anything you don’t want. Rails = good

🍽️

Categories

Dev