I have to admit my first day at Rails World 2024 felt rather hectic. So many people! So many lights! I’m in a different country! I need coffee!
The venue was absolutely beautiful. Set in an old brick factory in Toronto, it had the perfect mix of natural and manufactured beauty and an interesting layout with many little places to explore. The conference’s branding, with banners and signs everywhere, particularly the eye-catching Rails LED sign, created an atmosphere of excitement and anticipation. Despite feeling a bit overwhelmed and tired from my previous day's travel, I found myself caught up in the rush to grab a quick bite, secure some much-needed coffee, and locate my coworkers amidst the sea of attendees in the main auditorium.
This year's Rails World was nothing short of massive, boasting over 1,000 attendees from 57 countries. A fascinating tidbit I discovered during my morning bus ride to the venue was that almost 300 of these attendees were Shopify employees. While this may seem like an over-representation, it's a testament to Shopify's commitment to the Rails ecosystem and its successful implementation of the framework at an impressive scale.
Overview of Rails World 2024
On the first day, the opening keynote was delivered by David Heinemeier Hansson (DHH), the creator of Rails. At the end of the first day, there was a three-way chat session featuring DHH, Yukihiro "Matz" Matsumoto (the creator of Ruby), and Tobias Lütke (founder and CEO of Shopify). This lineup of speakers set the tone for an event filled with insights from some of the most influential figures in the Ruby and Rails world.
The conference's subtitle, "Shaping the future of Ruby on Rails," perfectly encapsulated its forward-looking focus. Talks centered around new releases and features, such as Rails 8, innovative developments like integrating AI agents into Rails applications, and discussions on common problems Rails developers face and their proposed solutions.
Key Takeaways from Sessions and Workshops
DHH's opening keynote put a spotlight on Rails 8 and its new developments. The driving philosophy behind these updates is to maintain Rails as the "one-person framework" - a tool so streamlined that a single developer can take an application from "Hello World" to production. He announced several new features in Rails 8 to achieve this:
- The "Solid Trifecta" eliminates the need for Redis, which can significantly simplify application architecture and hosting.
- Built-in authentication code generator: This feature removes the necessity for common gems like Devise, making the inclusion of authentication code just as easy as using Devise, but in a more transparent and customizable way.
- Thruster: A built-in proxy server that simplifies deployment configuration, particularly when integrating with load balancers and serving static assets.
- Kamal 2: A tool designed to simplify the deployment process further.
The main thrust of all these tools is to eliminate dependencies and streamline processes while keeping control in developers’ hands. This is an impressive goal, and I think the Rails team delivered admirably on it.
Memorable Speakers and Presentations
Obie Fernandez's talk on the second day, entitled "Empowering the Individual - Rails on AI," absolutely blew my mind. Obie introduced a groundbreaking approach to application architecture using semi-autonomous AI agents that replace traditional code. These agents assume dedicated roles and communicate with each other in plain English, cooperating in ways that are reminiscent of the famous "Gang of 4" design patterns but entirely novel.
He also shared an example of two AI agents interacting:
Agent 1: "Hey, I noticed user 257 hasn't logged in in over two weeks."
Agent 2: "Ok, let me send them a reminder email about some of our new features."
Important to note is that this exchange occurs in English between the two AI agents, with Agent 2 then calling on more traditional function hooks to send the email. These two agents were crafted by giving prompts outlining their specific duties to a more general AI model.
Obie provided valuable insights into prompt engineering, emphasizing the importance of focus when crafting prompts for AI agents. Today’s AI models have such vast knowledge bases that giving them specific focuses and guidelines on how to respond helps them avoid hallucinations and misunderstandings.
Obie’s new book is called “Patterns of Application Development Using AI,” and while his talk was not explicitly an advertisement for his new book, I am excited to check it out.
Networking and Community Building
One of the conference's highlights was interacting with numerous Shopify employees. I was fascinated to learn how such a large (1500 people!) distributed development team maintains cohesion and engagement. Shopify's approach to balancing remote and office work is particularly interesting. They have "pods" in major cities, which function more like dedicated coworking spaces than traditional offices. Periodically, specific teams fly in to work together in person at a particular pod for a few weeks.
One person shared that he found this really valuable. Even if he was not involved in the work going on at his particular pod, he felt like he learned a lot about other areas of the application by getting to overhear the other team’s discussions. I thought this approach was a great way to balance remote work's flexibility and the benefits of in-person work.
Reflections and Inspiration
Attending Rails World 2024 reinforced my appreciation for Rails as a framework designed to simplify web development. The concept of Rails as a "one-person framework" is ambitious, but I think the Rails team has pulled it off and continues to keep it relevant thanks to the well-thought-out tools and intuitive patterns that they’ve already established and continue to innovate on.
Some of the tools I was most excited to learn about are those designed to simplify hosting. As someone who has always found large cloud systems like AWS overly complicated and too expensive for many business cases, I was thrilled to learn about Rails 8's tools to simplify deployment to simpler architectures. Although he can come across as abrasive at times (and I don’t think he’d argue with me there), I appreciated DHH's exhortations, with accompanying cost-benefit analyses, for developers to (re)learn Linux and reclaim some of the responsibilities that the cloud hosting industry has taken over.
While I don’t think most developers these days are scared of Linux, exactly, I do agree with his basic premise that it’s more fun to be competent and that there are many benefits to keeping things smaller scale (e.g., hosted on a single Linux machine from a more traditional hosting provider) as long as it serves the business case.
Impact on Our Work at Planet Argon
Moving forward, I plan to implement several techniques and tools from the conference in our work at Planet Argon. Specifically, I look forward to using Solid Queue with database-backed queuing for future projects requiring background jobs. I'd like to explore running deployments with Kamal and servers with Thruster for greenfield projects or those undergoing significant hosting changes.
One new initiative I propose is to analyze our client projects for Redis dependencies that could be removed. By identifying opportunities to switch Redis-backed features to Solid Queue/Solid Cache, we could potentially save our clients money on hosting costs in the long run.
Conclusion
Attending Rails World 2024 was an incredibly valuable experience. Beyond the wealth of knowledge gained about new Rails features and tools, the palpable excitement and energy at the venue were genuinely inspiring. Being surrounded by so many people who use the same tools daily, many actively involved in improving them, reaffirmed my decision to learn and stick with Ruby and Rails over the years.
The conference provided technical insights and reinforced the sense of community and shared values that have made Rails the best framework to work with and continue to keep its ecosystem vibrant, enduring, and ever-evolving.