Ruby on Rails 8 is shaping up to be one of the most exciting versions yet, introducing powerful features for both seasoned developers and those new to the framework. From supporting SQLite for production to native authentication and improved Progressive Web App (PWA) support, Rails 8 brings significant innovations to the table. Here’s a breakdown of some of the most impactful changes:
1. Progressive Web Apps (PWAs) Get a Boost
Rails 8 brings enhanced support for Progressive Web Apps, with PWA setup files generated by default. Moreover, it introduces Action Notifier, a new framework dedicated to managing push notifications, similar to how Action Mailer handles emails. This improvement aligns with Rails’ philosophy of providing developers with the tools they need to build web apps that can operate offline and deliver notifications, making it easier than ever to integrate PWA functionality.
2. SQLite in Production: A Radical Bet
One of the biggest advancements in Rails 8 is the expanded support for SQLite, now positioned as a viable database for production environments. Rails founder David Heinemeier Hansson (DHH) envisions SQLite as a single-database solution for low to medium-traffic web applications.
In addition, three new adapters have been developed to reduce the reliance on memory-based caching systems like Redis:
- Solid Cable for WebSocket support
- Solid Cache as an alternative to Redis or Memcached for caching
- Solid Queue for job queuing, supporting SQLite, MySQL, and PostgreSQL.
This streamlined setup is designed for easier deployment and maintenance, allowing applications to benefit from high-speed SSD caching without the need for additional services
3. Built-In Authentication Generator
Rails 8 has finally included a native authentication generator, making it easier for developers to set up simple user authentication out of the box. Previously, Rails developers often turned to Devise or other solutions to implement authentication. The new generator in Rails 8, however, creates a more lightweight option that can cover basic needs for many applications. While not as feature-rich as Devise, it offers a streamlined, native solution for small to medium applications.
4. Propshaft: A New Asset Pipeline
Rails 8 replaces Sprockets with Propshaft as the default asset pipeline, aiming for a more modern and efficient asset management system. Propshaft is designed to streamline asset compilation and delivery, making it easier to configure and deploy assets in Rails applications.
5. Developer Tools and CI/CD Enhancements
Rails 8 improves the developer experience significantly by adding tools for continuous integration and deployment:
- A default GitHub CI action for running tests, checking vulnerabilities, and linting.
- Rubocop as a default linter, with a minimal configuration that can be customized for each project.
- Language Server Protocol (LSP) support, improving editor experiences with autocompletion, code navigation, and other developer tools. The Shopify-driven
ruby-lsp-rails
gem is expected to enhance this even further, making Rails development smoother.
6. Streamlined Deployments with Kamal
Rails 8 includes Kamal, a tool for simplified container-based deployments, which complements the new CI/CD pipelines. This integration aligns with Rails’ shift toward a platform-agnostic stance, allowing developers to deploy Rails applications efficiently without relying on a particular cloud vendor.
Rails 8 marks a transformative step in the Rails framework, catering to developers looking for a simplified, streamlined setup that balances modern practices with the classic Rails philosophy. With built-in authentication, better PWA support, and SQLite for production, Rails 8 is designed for flexibility and ease of use, making it ideal for smaller-scale projects while remaining robust enough to support large applications.