Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[SF Ruby Conf 2025] Rails X

[SF Ruby Conf 2025] Rails X

Avatar for Vladimir Dementyev

Vladimir Dementyev

November 20, 2025
Tweet

More Decks by Vladimir Dementyev

Other Decks in Programming

Transcript

  1. Path to X Reflect Listen Observe Predict 4 What are

    the past decisions to reconsider? What do users want? What do competitors offer? How do we stay relevant?
  2. –Anonymous Rails user with 10+ years of experience “ActiveRecord was

    an architectural failure since pre-1.0.” 10
  3. 11

  4. 14 CALLBACKS 29 4 ACTION PATTERN (CONTROLLERS) RECONSIDER ACTIVE RECORD

    21 ACTION MAILBOX 17 IVARS IN VIEWS 11 ACTION TEXT 9
  5. module Store module Products class Create < Hanami::Action include Deps["repos.product_repo"]

    params do required(:name).filled(:string) end def handle(request, response) halt 422 unless request.params.valid? product = product_repo.create(name: request.params[:name]) response.redirect_to routes.path(:product, id: product.id) end end end end 15
  6. module Store module Products class Create < Hanami::Action include Deps["repos.product_repo"]

    params do required(:name).filled(:string) end def handle(request, response) halt 422 unless request.params.valid? product = product_repo.create(name: request.params[:name]) response.redirect_to routes.path(:product, id: product.id) end end end end 15
  7. 16 CALLBACKS 29 42 JS/CSS MGMT 4 ACTION PATTERN (CONTROLLERS)

    RECONSIDER ACTIVE RECORD 21 ACTION MAILBOX 17 IVARS IN VIEWS 11 ACTION TEXT 9
  8. –Reddit user “Bad: JS integration. Every new version comes with

    a different approach. Not solid, no consistent.” 17
  9. 18

  10. 19 propshaft jsbundling-rails esbuild bun cssbundling-rails tailwindcss-rails + + +

    Joyful developer experiences are about reducing friction
  11. 31 rails new 0 IPO 1 ∞ 2 ··· New

    users Makers Growing startups Big Rails
  12. 32 rails new 0 IPO 1 ∞ 2 ··· New

    users Makers Growing startups Big Rails "Listen" target audiences
  13. –Anonymous Rails user with 5+ years of experience “rails new

    generates something closer to a fully functional SaaS app with the right flag configurations.” 34
  14. –Another anonymous Rails user with 5+ years of experience “The

    prebuilt modules you see teams using in the Laravel community... there's a lot of convention only provided by gems or private libraries, eg Jumpstart” 35
  15. 39

  16. 39

  17. 41

  18. 42

  19. 43

  20. 44

  21. 45

  22. “Official abstractions for service classes and conventions on when to

    use them vs using background jobs or models.” 47
  23. “Being opinionated it still lacks a clear prescription on where

    to put business logic code and architectural guidelines on how to interact with other external systems appart from the database” 48
  24. Active Job Continuation class CloudGenerationJob < ApplicationJob include ActiveJob::Continuable def

    perform(cloud) @cloud = cloud step :moderate, isolated: true step :generate, isolated: true unless cloud.failed? end end 58 https://github.com/evilmartians/sfruby-clouds
  25. Active Job Continuation New in Rails 8.1 No durability (Temporal?)

    No parallel steps Good foundation => build on top! 59
  26. 62 Puma Action Cable Server Rails Executor Connection Channel Web

    Socket Channel Channel Thread Pool rack.hijack #connect #subscribed #receive #disconnect #unsubscribed I/O loop Client Socket #send
  27. 64 Puma Action Cable Server Rails Executor Connection Channel Web

    Socket Channel Channel Thread Pool rack.hijack #connect #subscribed #receive #disconnect #unsubscribed I/O loop Client Socket #send
  28. 65 Puma Action Cable Server I/O loop Rails Executor Connection

    Channel Web Socket Channel Channel Worker Pool rack.hijack #connect #subscribed #receive #disconnect #unsubscribed Falcon Async Cable AnyCable RPC AnyCable
  29. 67

  30. Predictions DX is more important than ever 70 For developers

    sake, for community's sake, for better world, I want you to enjoy programming
  31. Predictions DX is more important than ever AI-readiness is the

    must 71 This is Ruby's time to shine in AI!
  32. Predictions DX is more important than ever AI-readiness is the

    must Hotwire hits its limits 72 => more frontend options
  33. In 2025, the frontend landscape for Rails isn’t about choosing

    a single solution—it’s about having the right tool for each job
  34. “I want Rails to point out what's missing, which design

    patterns, gems, capabilities of the framework we're not using the way we should. Act as true and careful GuardRails for our application.” 78
  35. Future DX Better LSPs and such (Herb ! ") GuardRails

    (linters, runtime guards, doctors) Types (?) 80
  36. 81

  37. Future with AI AI-enhanced templates / starter kits / AGENT.md

    First-class AI concepts (RubyLLM, Active Agent) 83
  38. Future with AI AI-enhanced templates / starter kits / AGENT.md

    First-class AI concepts (RubyLLM, Active Agent) Code & runtime intelligence 83
  39. Future with AI AI-enhanced templates / starter kits First-class AI

    concepts Code & runtime intelligence Vibe coders onboarding 85
  40. Future with AI AI-enhanced templates / starter kits First-class AI

    concepts Code & runtime intelligence Vibe-boarding 86
  41. Vibe-boarding From zero to one without leaving the browser Claude

    Code, Tidewave => only for coders Next step => lightweight deployments 92
  42. Rails X Beginner-friendly Developer-friendly AI-native Ready to scale 94 Docs,

    starter kits, UI kits, vibe-boarding LSPs, guardrails, linters AI concepts, augmentation Maintainable architecture, performance-oriented extensions
  43. Rails X Safe & sound Beginner-friendly Developer-friendly AI-native Ready to

    scale 97 Docs, starter kits, UI kits, vibe-boarding LSPs, guardrails, linters AI concepts, augmentation Maintainable architecture, performance-oriented extensions Stable, robust, and secure foundation # rails/rails
  44. 98

  45. Rails X 101 Keep building software systems, keep sharing Adopt

    new ideas within the community and get inspired by the world outside of Rails Remember that Rails is not a single, perfect idea (rails/rails), it's a messy quilt 100
  46. Rails X 101 Keep building software systems, keep sharing Adopt

    new ideas within the community and get inspired by the world outside of Rails Remember that Rails is not a single, perfect idea (rails/rails), it's a messy quilt 100 THANK YOU!