The Path to Rails 8 - Add the Remaining Rails 8 Default Goodies to the Project @StatelessCode
The Path to Rails 8 - Add the Remaining Rails 8 Default Goodies to the Project  @StatelessCode
Uploaded June 2025 | Updated September 2026, 3 weeks ago
We in the previous videos, we technically upgraded our app to Rails 8, but we are not yet getting many of the benefits a newly generated Rails 8 app will have. In this video, we unlock the following new features in Rails 8 that didn't automatically get added when we upgraded the app:

- Propshaft: Modern asset pipeline libary and replacement for Sprockets.
- Thruster: An HTTP/2 proxy for simple production-ready Rails deployments.
- Solid Queue: Database backend for ActiveJob, as an alternative to Resque or Sidekiq.
- Solid Cache: Database backend for caching. Allows caches to live far longer and reduce your cache miss rate.
- Solid Cable: Database backend for ActionCable, as an alternative to Redis.
- Kamal: A deployment tool for bare metal or cloud that uses Docker.
- Dockerfile: Used to specify the build for the Docker images used by Kamal.

We end up using and configuring SQLite3 for the Solid Trifecta database instead of creating more PostgreSQL databases to support the back-end of those features. Our application database remains PostgreSQL (at least for now).

Most of the new additions were fairly straightforward to get set up, with the exception of the Dockerfile. As of May 2025, there doesn't appear to be a `rails` command to invoke the Dockerfile generator. We ended up just copying the Dockerfile from a newly generated Rails 8 app after trying to manually create one from the generator template.

After we set everyting up, our app is now truly upgraded to Rails 8.0! We open a pull request back into the main branch, merge it in and close our issue on GitHub.

This video covers:
0:00:00 Introduction and overview of approach
0:04:45 Compare the current Gemfile with the one generated by a Rails 8 app with `rails new` and modify the NerdDice.com Gemfile
0:08:37 Run `bundle update` and `bin/rails app:update` commands (accepting all new changes)
0:09:25 Review the git diff, restore SimpleCov config
0:10:08 Run RuboCop. Add bin/setup and config/environments/production.rb to ignore STDOUT violations
0:11:40 Update the head tag in the application.html.erb layout to the new format and do a regression test
0:13:58 Copy the placeholder Progressive Web App configuration from the Rails 8 app and update the app name
0:15:18 Take an inventory of what still needs to be done. Delete generated framework defaults file
0:16:43 Run the install commands for SolidQueue, SolidCache, and SolidCable and review the Git diff
0:19:46 Set up the database and environment, and Puma configuration for SolidQueue, SolidCache, and SolidCable. Retest.
0:27:16 Initialize Kamal
0:27:43 Get Dockerfile, docker-entrypoint, and .dockerignore files into the project, evaluate the template logic to manually edit.
0:33:51 Pivot and copy the generated Dockerfile from the generated Rails 8 app into the Dockerfile
0:34:40 Run Rubocop. Auto-correct violations. Add db/queue_schema.rb to ignore in .rubocop.yml. Re-run tests.
0:35:28 Commit and push code, pull request into main, update backlog, close issue.

#ruby #rails8 #solidqueue #solidcache #solidcable #kamal #propshaft #thruster #dockerfile #rails #rubyonrails #rubygems #codecast #screencast #github #opensource #minitest #TDD #agile #NerdDice #DnD #roleplaying #softwaredevelopment #learntocode #tailwind #postgresql #rubocop #devise #turbo #controllers #views #selenium #capybara #systemtest

Featured Playlist:
- youtube.com/playlist?list=PL9kkbu1kLUeMJFb0GT8ZMzrsSKJaxjOKH

See other related StatelessCode videos:
- youtu.be/QbeSvdAxknk
- youtu.be/RGmj7QcCVmM
- youtu.be/RR31ztGtrhA
- youtu.be/JimjiXQoGJ8
- youtu.be/FoCoBd2fZk4
- youtu.be/H0PvsE4GuSE
- youtu.be/jJFdsJfBk58

Resources that we relied upon for this solution:
- Propshaft: github.com/rails/propshaft
- Thruster: github.com/basecamp/thruster
- Solid Queue: github.com/rails/solid_queue
- Solid Cache: github.com/rails/solid_cache
- Solid Cable: github.com/rails/solid_cable
- Kamal: kamal-deploy.org

GitHub Commit for this Video:
- github.com/statelesscode/nerd_dice_dot_com/commit/b8444c9

This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of "intellectual property". Copying is not stealing.
The Path to Rails 8 - Add the Remaining Rails 8 Default Goodies to the ProjectInkscape 01: Install Inkscape on UbuntuCreate a RubyGem 102: Winter 2024 Maintenance Part 1 - Update Bundle and Fix Rubocop ViolationsCreate a RubyGem 103: Winter 2024 Maintenance Part 2 - Update Certs and Release Version 0.5.1Codecast: Getting Started with Rails 7 25: Set Up a Comments MailerGenerate a New Rails 7 Project With Tailwind and PostgreSQLMake Devise ParanoidSubmit Contributions to Rails for the Authentication Generator and DocumentationCodecast: Create a RubyGem 81: Refactor ConvenienceMethods - Part 3NerdDice.com Retrospective 4 - It is a Long Way DownCreate a RubyGem 93: Refactor RuboCop to Enable New Cops by Default for the GemCodecast: Create a RubyGem 88: Add Ruby 3.1 to GitHub Actions and Update Bundle
Stateless Code |

The Path to Rails 8 - Add the Remaining Rails 8 Default Goodies to the Project

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER