SF Ruby Conference 2025 was a three-day Ruby conference that took place in San Francisco, California on November 19-21, 2025. It was hosted at historic Fort Mason right on the water with views of the Golden Gate Bridge. This conference brought together Rubyists for two days of talks on AI, Rails, and the future of Ruby! It was amazing! Fantastic talks, great space, great afterparties, and a dedicated day for community events on the final day.

The Conference Experience

On Day 0, I flew into SF, had jetlagged lunch with Max, and walked over to the venue for tech check and speaker dinner.

View of the bay as the plane lands. Can't go to California without getting In-N-Out!

Max Tiu and I getting burgers and fries at In-N-Out. Gnarled tree overhanging a sidewalk along the beach – my walk to the venue. A view of the venue from far away. It's a low old building over the water with a sign over the front door that says SF Ruby Conference. The bridge is visible in the background beyond the building.

The Venue

This venue is absolutely gorgeous! I’m loving the transparent chairs and conference spaces!

Open main stage seating with transparent red chairs. The San Francisco Ruby Conference banner is flanked by two led screens with the logo on them. Long modern tables with transparent chairs in rows for the workshop studio. A moody theater with the walls painted black and the wall has a video of the SF Ruby Conference logo projected on it.

Zero Gravity Lounge

I love how cool and zen the zero gravity lounge is. This was one of my favorite places to hide and be comfy.

Evil Martians socks hidden in the end tables. A dim room with red lighting and modern curved angular couches. Imagine an octagon but with 3 segments missing. A sign saying 'ATTENTION ZERO GRAVITY' painted on the wall, and a flashing alarm light above the door.

Ruby Embassy

I got my Ruby Passport!! ❤️🛂 I’ve loved seeing these at various events, and I’m so excited to have one of my own! The passport has an NFC tag that’ll open your RubyEvents profile. It’s such a fun way to share which events you’ve been to. Thank you to SF Ruby and the Ruby Passport team for organizing an embassy!

Colorful flag pennants adorn the wall, and props cover the table. The photographer stands by, waiting for the next Rubyist. Colorful flag pennants adorn the wall as two volunteers help someone with their first Ruby Passport. A screenshot from RubyEvents.org of Chael's profile. There are now 3 icons next to her name - verified, Ruby Passport, and contributor. An open Ruby Passport in front of a window overlooking the tarmac at SFO. An attempt has been made to make block letters and emulate a real passport, but it has failed. The ink is smudged and dates have been scratched out and updated. The photo is a stiff, dead-eyed smileless stare like a real passport.
    First name: RACHAEL
    Last name: WRIGHT-MUNN
    Date of birth: (left blank) 
    Nationality: UNITED STATES
    Signature: (squiggly ChaelCodes signature) 
    Date and event of issue: 19 Nov 2025 SF Ruby
    Date and version when you started using Ruby: 10 Jul 2014, 2.1
    Date and version when you started using Rails: 03 Mar 2015, 4.2.0

The Talks

The line-up for SF Ruby Conference was incredible! A mix of AI, Ruby, and community talks kept things fresh and interesting.

Conference Introduction

To start off the conference Irina Nazarova thanked everyone who was involved in making this conference happen and reminded us why we’re here–to learn how to build the future in Ruby!

Irina speaking on stage, gesturing with a serious expression in an iconic orange vinyl off-shoulder dress with a white mesh long sleeve shirt under it. Irina on stage flanked by slides that say "How to build the future in Ruby". Irina on stage, flanked by screens that say "Welcome to" and the SF Ruby Conference logo.

Herb to ReActionView: A New Foundation for the View Layer

Marco Roth

This talk is the conclusion of a journey I’ve been sharing throughout 2025. At RubyKaigi, I introduced Herb: a new HTML-aware ERB parser and tooling ecosystem. At RailsConf, I released developer tools built on Herb, including a formatter, linter, and language server, alongside a vision for modernizing and improving the Rails view layer.

Herb continues to enable incredible advances in the developer experience of HTML+ERB. There was a spontaneous round of applause for the new error page of ReActionView. Even as I was getting my mic, I was on tiptoe trying to see what the latest is.

📺 Recording will be available at RubyEvents

Marco on stage looking serious. Marco on stage. The slide "Herb to ReActionView: A New Foundation for the View Layer" Marco on stage next to a slide "Ruby is elegant. Ruby is expressive. Ruby is a joy."

Play with Your Code

Rachael Wright-Munn

Why are programming games more fun than our day jobs? We’re going to dig into this exact question and see what lessons we can learn from them, and how we can bring it back to our developer experience. Also, we’re going to talk about some rad programming games you should play!

I was really nervous about giving this talk. The DX of programming games is a fine topic for a lightning talk, but I wasn’t sure how it would translate to a full-length talk (or if anyone would care to see it). I’m incredibly grateful for the warm reception it received and everyone who came up to me afterwards! I liked hearing everyone’s takeaways because everyone had something different!

📺 Recording will be available at RubyEvents

Chael doing jazz hands about how ANSI color codes match your editor theme. (It makes sense in context, I promise!) Screenshot of Slack message from Chael.
    Slides are here for "Play with your Code". There'll be a companion blog post soon! If you have questions, feel free to drop them in a thread! (You do not need to check the slides first to ask a question.)
    There are 8 tada reactions, and 2 each of the hearts purple, green, and blue, a reference to a joke in the talk. Screenshot of a slide from the closing keynote 'Rails X'. My cloud character is saying 'Joyful developer experiences are about reducing friction' superimposed over an image of a complicated asset pipeline.

Rails Expertise Distilled: AI Agents That Get Your Monolith

Brandon Weaver

New developers face months of unproductive confusion when dropped into massive codebases they can’t navigate or understand. What if they could get instant answers about how systems work, identify what code needs changing, and understand complex business logic without waiting for help? This talk demonstrates how Rails’ built-in introspection transforms into expert AI tools that understand your specific codebase, making institutional knowledge accessible 24/7. Instead of 3-month ramp-ups, developers contribute meaningfully in days while the entire team stays productive.

Learning about building MCP tooling to better understand your application was fascinating! The questions AI is able to answer when it has access to introspection from Packwerk and Rails is really cool!

📺 Recording will be available at RubyEvents

Brandon addressing the audience Packed Blackbox Theatre - standing room only. Brandon stands at the podium, the slide says "...but What if AI? MCP Tools" Brandon addresses the audience. The slide is slightly washed out from sunlight. 

Macro Tools
QueryPackwerkTool
Comprehensive Packwerk query with multiple query types: 
- packages - List all packs
- violations - Basic violation counts
- ownership - Who owns what
- patterns - Most violated code with usage patterns
- consumers - Who uses a pack
- producers - What a pack uses
- graph - Full architecture analysis (dependencies, circular deps, team coupling)
- suggestions - Refactoring ideas Brandon addresses the crowd and slide (slightly washed out from sunlight) says: 

The Actual Value
- "What does my team own?" -> 2 seconds instead of 20 minutes 
- "Where is this used?" -> instant instead of grepping
- "What breaks if I change this?" -> analysis instead of guessing
- "What's blocking the sprint?" -> instant instead of opening Jira
- "Find the deployment docs?" -> instant instead of searching confluence

For onboarding: Instead of 3 months to understand the codebase + tools + processes, maybe 3 weeks. 

For daily work: Less context switching between tools.

Master the Rails Asset Pipeline: Best Practices for Apps & Gems

Adrian Marin

I toyed around with asset handling a lot in the last 4 years. I started in the pre-webpacker era, and came all the way to importmaps, esbuild and vite.

I ship a gem (Avo), which is used in hundreds of different applications with different asset pipeline configurations, and use several techniques to ship my assets.

Now I’m developing a plugin system and have hit all the roadblocks I can hit and have a better understanding of how things work.

I really liked Adrian’s talk about the asset pipeline. The historical perspective and comparison of different ways to handle JS and assets was interesting. Especially how to include assets in gems (like Avo)!

📺 Recording will be available at RubyEvents

Adrian smiling and laughing on stage. Adrian on stage emoting with the audience. Adrian on stage next to a slide:

What did we learn?
- The asset pipeline is powerful
- importmaps is low-hanging fruit
- esbuild is powerful and easy to integrate
- we can create gems with perfectly delivered assets Adrian introduces a summary of the talk.

Summary
1. What are assets? 
2. How it was in the ol' days
3. Why do we have an asset pipeline? 
4. Where are we now
5. How can we leverage it to build effective Rails plugins

Peace, Love, and CRUD: Finding Calm in the Chaos with Ruby, AI, and a Little Garden Magic

Tia Anderson

This talk matters because we are enduring death by a thousand quiet cuts. The world asks us to go faster while our spirits beg us to slow down. Emotional exhaustion has become the norm, but it doesn’t have to be. I built Peace of Mind not just with Rails, but with urgency and heart. As a newer dev and RailsConf Scholar, I’ve lived the tension between burnout and beauty. Choosing peace…in our work, our lives, and our code creates ripples. It starts with one. One you. One me.

Congratulations to Tia Anderson on her first conference talk!! 🎉 Tia and I both did lightning talks at RailsConf, and I was really happy to be able to support and encourage her in her first talk. She’s been working on pom, an app that brings together journaling, gardening, and recipes to promote peace of mind.

📺 Recording will be available at RubyEvents

Tia gesturing to the audience. Tia standing beneath her slide: 

Peace, Love, and CRUD: 
Finding Calm in the Chaos–With Ruby, AI, and a Little Garden Magic

Tia Anderson - Newish Rubyist and creator of: pom Tia smiling and gesturing behind the podium Tia beneath a slide showing her app - pom

José Valim

As AI becomes increasingly integrated into software development, we find ourselves facing questions about how our programming languages and tools should evolve - questions that don’t yet have clear answers. Rather than prescribing solutions, this talk explores the open questions and possible directions that developers and tooling authors should be grappling with.

I was really excited about José Valim’s talk because I’d heard good things about Tidewave, but now I’m more excited by some of the suggestions he made. The idea of a runtime API for fetching documentation is fascinating to me!

📺 Recording will be available at RubyEvents

José pointing at the slides, face serious. José addressing the crowd, the slide next to him says: 

Integrate coding agents into what you are building
- Writing scripts, libraries, frameworks => EDITOR
- Building web applications => BROWSER
- Running data analysis and reports => NOTEBOOKS
- Crafting a game => GAME EDITOR José addresses the audience, next to him is the slide:

Structured templates
- ERB builds HTML using string interpolation
- No structure, no validations
- HERB(HTML+ERB) to the rescue? Unified documentation
- Hard to access, no metaprogramming, no doctests
- Proposal: runtime API to fetch documentation (see Python, Elixir, Clojure, PHP)
- Proposal: unified documentation website

RubyLLM: One API, One Person, One Machine for AI

Carmine Paolino

The Merchants of Complexity have sold the AI world a lie. You need their frameworks. Their SDKs. Their enterprise architectures. Bullshit. AI today is just API calls. That’s it. And when the game becomes building products instead of training models, complexity is death and simplicity is everything. Rails proved it.

RubyLLM: one API for every model, every vendor. One developer on one machine serving thousands. While Python developers debug their 14-line “Hello World,” we’re shipping. Ruby’s time in AI isn’t coming - it’s here.

RubyLLM is such an incredibly clean interface for building apps that use AI! I appreciate Carmine Paolino’s passion for simple interfaces and the philosophy behind it. In many ways, I feel the code could’ve spoken for itself.

📺 Recording will be available at RubyEvents

Carmine pointing at a slide demoing RubyLLM.
      Track usage with RubyLLM
      ```
      response = RubyLLM.chat(model: "gemini-2.5-flash").ask("What's the oldest known example of conifers?")
      response.input_tokens
      # => 12
      response.output_tokens
      # => 1279
      ``` Carmine points at a slide:
      This is Ruby's time to shine in AI Carmine on stage. Slide says: 
      The RubyLLM Philosophy
      1. Simple should be simple, complex should be possible
      2. Models and providers are commodities
      3. Convention over configuration
      4. Progressive disclosure
      5. One API, for One Person, in One Machine Carmine staring out at the audience.

Ruby + AI = Conversation

Obie Fernandez

A conversation about the intersection of Ruby and AI technologies, exploring opportunities and challenges.

This talk from Obie Fernandez was a great explainer on how our understanding of the software development process needs to evolve with AI! I loved the point about shared human and AI frustrations. New AI tools and docs are helping both!

📺 Recording will be available at RubyEvents

Obie stands on stage, pointing at the audience. He's wearing a black shirt with the words 'dangerously skip permissions' printed in large letters on it. Everything that frustrates you in a codebase also frustrates your coding agents. Just in different ways. 
      Humans get confused. AI gets unpredictable.
      Humans feel overwhelmed. AI loses coherence in its generation.
      Humans slow down. AI drifts, hallucinates, or contradicts itself. Obie looks at the slide:
      Why does process exist again?
      Reduce uncertainty and coordinate humans
      - Create predictability in an inherently unpredictable  activity
      - Manage risk (technical, timeline, communication, scope)
      - Align people so teams don't drift, duplicate work, or miss expectations
      - Ensure feedback happens before mistakes get expensive
      - Provide shared rituals that help groups make decisions and adapt Obie has updated the previous slide for AI
      Why does process exist again? **(2025)**
      Reduce uncertainty and coordinate humans **and their AI agents**
      - Create predictability in an inherently unpredictable  activity
      - Manage risk (technical, timeline, communication, scope)
      - Align agents so they don't drift, duplicate work, or miss expectations
      - Ensure feedback happens before too many tokens get wasted
      - Provide shared rituals that help groups make decisions and adapt

From Code to Customers: Technical Marketing for People Who’d Rather Be Building

Colleen Schnettler

Too many brilliant Rails developers build great products and then quit when customers don’t appear.

They’re missing one skill: marketing. I want to change that.

The Rails renaissance is here (huge thanks to Evil Martians!), and I believe helping Rails builders become successful entrepreneurs is crucial for our community’s future. This might be the conference’s most impactful talk.

Why me? I’m a technical founder who’s built three startups and now coach technical founders on marketing. I’ve lived this journey and help others navigate it daily.

Tech is great, but you need people to buy into your product or project! Colleen Schnettler’s talk was a great overview of some different ways to get people interested in your project! I really liked the points about post quality and building trust.

📺 Recording will be available at RubyEvents

Colleen on stage, gesturing, next to a slide showing a marketing cycle. 
      There's a title "Marketing 101 by Colleen" and then 6 points in a circle.
      Identify Target Audience
      Who are you selling to, and where do they hang out?
      Create
      Create something for them
      Communicate
      Tell them about the thing
      Build Trust
      Make the thing useful/interesting/good
      Sell Product
      Upsell the product
      Do it again
      With a new thing Colleen on stage, gesturing to the audience. Colleen on stage with a camera pointed at her in front of a sign "2025 San Francisco Ruby Conference". The photo composition is particularly good.
      Next to her is a slide on an LED screen:
      None of this works if you don't
      Know who you're talking to
      Know how you're helping them
      (or if it's obviously AI-generated) Colleen on stage with a camera pointed at her in front of a sign "2025 San Francisco Ruby Conference".
      Next to her is a slide on an LED screen:
      The big three
      Social - Company Blog + Newsletter - YouTube

The Role of Software Design in an AI World

Sarah Mei

Ruby devs, like all devs, are nervous about their worth in an AI world. This talk gives them reason to be optimistic, & will start to open for them a vista in which they are enhanced by AI rather than being replaced.

For 10+ years I’ve spoken, written, & thought deeply about software design. For the last 6 months I’ve worked with code assistants to see what they can do in real Rails codebases - not new projects or toy apps. I’ve got some initial conclusions that are worth sharing widely.

I’m so excited to see Sarah Mei back on the stage! I really loved how she addressed that some AI hesitancy is based on personal fears expressed as societal fears. I also completely agree with her vision of the future. But I think we’ll see more small-scale niche projects in addition to ambitious ones, as one-developer applications become more feasible.

📺 Recording will be available at RubyEvents

Sarah Mei looking concerned and the slide next to her reads: 
      Our Personal Fears
      - I'll lose my job
      - Software jobs will lose prestige or pay less
      - The hard-won skills I have are suddenly useless
      - The thing I like about this job is going away Sarah Mei on stage, the slide next to her says: 
      Current shift: AI Coding Assistants
      Speculation:
      - Applications can be written faster
      - More applications will be written
      - More ambitious applications
      - More types of people can write them Sarah Mei laughing at her own joke. Sarah Mei on stage - the slide next to her says "The Panic Discourse" and features a bunch of headlines panicking about AI. My favorites are "The AI coding apocalypse" and "'It's a bloodbath out there': Tech workers forced to take 'survival jobs' as AI cuts swath through workforce".

The Dynamic Ruby Toolkit

Noel Rappin

Ruby rewards thinking about types with a dynamic mindset instead of a static one. In this workshop, we’ll show how use Ruby’s dynamism to your advantage. From the humble comment to runtime type checking, from tests to debugging techniques, from data management to true object-oriented design, this workshop will give you the tools you need to bring out Ruby’s full power.

I went to Noel Rappin’s workshop! I liked the reminder to think about pure Ruby objects, and agree that data validation replaces the need for static type checking. I was too shy to take photos in such a cozy space, but thankfully all the workshops were recorded!

📺 Recording will be available at RubyEvents

Keynote: Rails X

Vladimir Dementyev (Palkan)

The mysterious Rails X. Stay tuned!

I really loved this one! Vladimir painted a picture of a future ideal Rails X version. My favorite ideas:

  • onboarding vibe-coders
  • maintainable at all scales
  • Rails is a messy quilt, not just rails/rails
  • UI toolkits (I miss good component libraries)

I also loved how he wove in other talks for the closing keynote.

📺 Recording will be available at RubyEvents

Vladimir looks at a slide describing...
      Rails X
      Beginner-friendly
      Docs, starter-kits, UI kits, vibe-boarding
      Developer-friendly
      LSPs, guardrails, linters
      AI-native
      AI concepts, augmentation
      Ready to scale
      Maintainable architecture, performance-oriented extensions Vladimir on stage, looking up at the future. Vladimir gestures to a list of things Rails should reconsider based on a survey he did. The slide looks like a family feud list. 
      RECONSIDER
      JS/CSS MGMT (42)
      CALLBACKS (29)
      ACTIVE RECORD (21)
      ACTION MAILBOX (17)
      IVARS IN VIEWS (11)
      ACTION TEXT (9)
      ACTION PATTERN (CONTROLLERS) (4) Vladimir next to slide: 

Predictions
DX is more important than ever
AI-readiness is the must
Hotwire hits its limits

There was a fun surprise after this closing keynote, a Rails X cake!!

Vladimir on stage next to the opening slide which says "Rails" and then has a big X railroad crossing. Brittany Martin, Amanda Kinney, Gary Tou, and Irina Nazarova standing behind a half-eaten cake that's half-vanilla and half-chocolate. A cake with railroad tracks and a fondant train on it in the entrance.

Community Day

The final day of the conference was community day, and it featured a swim to Alcatraz, a 10K run, a trip to the Yoda fountain, and a bike ride over the Golden Gate Bridge.

However, I chose to hang out at the venue with comfy chairs, air conditioning, and free breakfast- Hack day at AngelList! I didn’t write a single line of code, but hack days are about more than just coding! I had some great conversations, and I’m feeling inspired and recharged going into the Thanksgiving break!

Trendy office space with comfy couches and chairs and a few people milling about. Food and coffee sitting on a table. Breakfast is breakfast burritos, pastries, and fruit. Irina making opening announcements to a group of people.

Ruby Friends

Talks are great, but the real value from conferences comes from the connections we make in downtime. ❤️ Between WNB.rb lunch, the GitButler afterparty, and unofficial get-togethers, I had a fantastic time meeting and chatting with my Ruby friends at SF Ruby!

Photo from WNB.rb lunch.
      Photo credit Dalma Boros Me, laying on two bean bags, chatting with Tia Anderson.
      Photo credit Amanda Kinney
Photo of people hanging out at a bar, playing pool, in the background, Rubyists are milling about.
      Jeremy Smith and Jim Remsik are watching Kasper and Mike Dalton play pool. PJ Hagerty and Chael getting a selfie at the GitButler party.

Final Thoughts

I had such an incredible time at SF Ruby Conference 2025! The venue was stunning, the talks were inspiring, and the community was as warm and welcoming as ever.

If you’re interested in watching any of these talks, keep an eye on RubyEvents where the recordings will be posted. SF Ruby Conference is still looking for post-production sponsors who’ll be featured in the conference videos.