• RoboRuby
  • Posts
  • Ruby AI: Introducing Tidewave Web & Interview with José Valim

Ruby AI: Introducing Tidewave Web & Interview with José Valim

A look at Tidewave, AI development, and key takeaways on the future

In this special interview with José Valim, the creator of Elixir, Livebook, and Devise, we look at the launch of the Tidewave Web coding agent for Ruby on Rails, the inspiration behind the service, and the future of AI development and Tidewave.

Contents

Introducing Tidewave Web

This month José Valim and the Dashbit team launched Tidewave Web, a browser-based coding agent for Ruby on Rails and Phoenix that runs directly alongside your web application with full access to UI state, database, logs, and code context, eliminating the back-and-forth of describing what's on screen to current AI coding assistants. The Tidewave coding agent features shared page context that automatically maps UI elements to corresponding controllers and templates, deep Rails framework integration allowing it to execute code within your running app, and collaborative browser testing where it builds and validates features in real-time using a point-and-click Javascript inspector. Currently in beta, Tidewave represents an exciting new direction in AI developer tooling. The Tidewave team posted a launch announcement where you can learn more about the service and the features.

Installation is straight-forward, and you can be up and coding in minutes. For Rubyists, simply install the Tidewave Rails Gem, powered by FastMCP. The gem adds a /tidewave route to your application that you can visit to create or log into your Tidewave account and set your Anthrophic or Github Copilot API keys. Boot up your app and start chatting with the agent and you’re ready to go! The documentation is constantly being updated, and has further installation instructions, useful tips and tricks, and guides for integrating the Tidewave Model Context Protocol server with your favorite editor.

Since launch, the Tidewave team have continued to ship updates and improvements. The first changelog features code editor integration with one-click file opening and UI element inspection, background notifications for agents and tools, and improved system prompts. The second update allows you to customize tool approval per project, available under the project settings. They are also rolling out a setting called “Labs”, where you can enable experimental features and provide feedback. To see what else is in development, you can visit the public roadmap, or the Tidewave Kanban board to see what’s currently in the pipeline. If you need further assistance getting started with Tidewave, be sure to join the Discord community!

Interview with José Valim

This week I had the privilege of interviewing José Valim, the creator of the Elixir programming language and the Chief Adoption Officer at Dashbit, a software development firm helping organizations run Elixir in production. As a Ruby legend, José is the author of Crafting Rails Applications, a former Rails core team member, and a Ruby Hero award winner. Previously, as co-founder of Plataformatec, he engineered the Devise Ruby library, the de facto authentication solution for Ruby on Rails still used today by hundreds of thousands of applications. Currently, José is building Livebook, an application for automating code and data with interactive Elixir notebooks, and Tidewave, an in-browser AI coding agent for Rails and Phoenix. So here it is, presenting José on:

The New Tidewave Coding Agent

Congratulations on the launch of Tidewave Web! Tidewave is an exciting new AI coding agent for Rails with context support for the development server, user interface, and source code. What makes Tidewave so special?

José: Tidewave is unique in that it is a coding agent that runs in the browser and it's deeply integrated with your web framework, from the database to the UI:

  • It can execute code within your running Rails/Phoenix app → queries your database, reads logs, accesses models directly

  • It can inspect and interact with your actual web pages → no more copying error messages or describing UI states

  • You can point and click on UI elements → so the agent knows exactly which part of your app you're talking about

Other coding agents are rather generic tools that don't particularly understand the unique capabilities of each stack. Tidewave leaps ahead because we specialize for each domain and framework we integrate with.

Inspiration

What was the inspiration for building Tidewave?

José: The initial inspiration for Tidewave actually came about 18 months ago. When I started using GitHub Copilot, it was clear that there was a gap between what the Large Language Model knows and the programming language runtime. We still see these gaps today: developers keep extending their coding agents with external tools to parse source code or find documentation, but if you ask Ruby or Elixir to fetch the location or documentation for a given method/function, the languages will give you a precise answer, without any additional dependencies.

Then, when Anthropic announced Model Context Protocol (MCP), it became clear I could close this gap myself, and that's when we announced Tidewave MCP for Rails and Phoenix, which uses your running web application to give the coding agent access to logs, documentation, source code, database, and more. We cheekily call it “Runtime Intelligence” because it is more than just looking at what the code or the compiler does.

At the same time, as I used coding agents more in my day-to-day, other limitations became apparent. For example, I noticed that I constantly had to swap between my editor and the browser to copy and paste a stacktrace shown by Rails/Phoenix’ error pages or to explain to the coding agent an UI bug I had just seen. I was caught in this loop between the browser and the agent, which wasn't very engaging. Those are the problems we want to solve with Tidewave.

Future Vision

What is the long term vision for Tidewave? What upcoming features are you most excited about?

José: Our long-term vision is to make Tidewave a full-stack coding agent across technologies. Right now Tidewave is tuned for server-rendered Rails and Phoenix applications, but we also want to integrate with React and bring other frameworks like Django and Next.js.

Additionally, there is a lot we are excited about, and given the fact that we just started, we're looking forward to listening to feedback from our users over what we should prioritize. One feature that I am personally very excited about and I can't wait to experiment with is the ability to run and coordinate multiple Tidewave agents at the same time. Given our focus on web frameworks, I believe we can bring a unique spin to this space.

Technology Stack

What are the tools and technologies behind Tidewave? What was the development process like? Do you specifically use any AI coding agents or workflows in your daily development flow?

José: Tidewave is broken apart into three main components: the server, which is implemented in Elixir/Phoenix; the client running in the browser, which is implemented in React; and then we have different runtimes, which are specific to each framework that we support and written in their respective programming language.

Everyone in our team uses coding agents in our day-to-day to varying degrees, depending on what we are working on. For example, we are frequently using Tidewave to iterate on itself. Also, for the framework runtimes, it is common for us to implement a feature in one language and then ask a coding agent to do the initial translation to another one.

Coding agents have also been very useful to build throw-away prototypes of new features and integrations, so we can validate ideas before deciding to invest more time into them.

Elixir

Over a decade ago, you switched from Ruby to build Elixir. What was the motivation behind that? Why do you prefer to build AI apps with Elixir over other languages?

José: Back in 2010, when I was part of the Rails Core team, we were hearing many conversations about writing concurrent software that can use all of our machine resources efficiently. So at the time, it was important for me to find ways and tools to build concurrent software reliably. This search eventually led me to create Elixir, a high-level programming language with focus on productivity and scalability.

If you think about AI applications today, they are essentially real-time and collaborative systems. You have users interacting with agents, you have agents running in real-time across a cluster, and information is constantly flowing between them. Elixir, thanks to its roots in the Erlang VM, can model and build these systems using its built-in concurrency and distribution capabilities, while every other stack out there requires you to bring background workers, messaging systems, and additional complexity to make it work. This makes Elixir uniquely positioned for building this current generation of web applications.

Language Evolution

With AI bound to play a more prominent role in development, how do you believe programming languages and tools should evolve?

José: That's an excellent question and indeed a big question mark at the moment. What I have found out in practice is that, at least for coding agents, they tend to trip and run into the same mistakes as us humans do. So confusing APIs, poor error messages, lack of documentation, etc. all lead to agents getting stuck and improving those will lead to better experiences for everyone, us included.

I'm also very interested in how the field of software verification (tests, code reviews, type systems, etc.) will evolve now that our development process is changing. For example, we have historically been really bad at writing tests and tracking requirements, and AI may throw a wrench big enough into the problem and force us to explore new solutions. These questions are exactly the topics that I aim to explore at my San Francisco Ruby Conference presentation. So it will be lovely to see you all there.

Closing Thoughts

What skill sets and disciplines do you think Rubyists should pursue to level up their careers and expertise in the age of AI?

José: The Ruby community has always been remarkable at accepting and exploring new ideas, which I believe is the most important skill to have today. There are still so many open questions and it all changes rapidly... so having an open mind and the ability to experiment will be crucial to navigate the next few years.

Additional Resources

I want to thank José Valim for taking the time to answer these questions, and for all of his contributions to the Ruby community over the years. If you haven’t already, be sure to check out all of the latest updates from José:

Tidewave is an AI development tool that accelerates web application development by connecting AI coding agents to web framework runtimes through the Model Context Protocol, providing features like database integration, runtime introspection, and code evaluation.

Dashbit is a company that offers an Elixir Development Subscription providing direct access to their team of experts for code reviews, technical meetings, and support to help startups and enterprises build and run Elixir applications in production.

Elixir is a dynamic, functional programming language that runs on the Erlang VM, designed for building scalable, fault-tolerant, and maintainable applications across domains like web development, embedded systems, machine learning, and data pipelines.

Livebook is an open source application for writing interactive and collaborative notebooks with code, data, and visualizations in Elixir.

Devise is a flexible, modular authentication solution for Ruby on Rails applications based on Warden that provides authentication modules and offers a complete MVC solution for handling user authentication with support for multiple models, OmniAuth integration, and customizable views and controllers.

Episode 267 of Thinking Elixir podcast features José Valim discussing Tidewave Web, a new AI-powered development service that adds an AI chat sidebar capable of directly interacting with and modifying Phoenix and Rails applications

The San Francisco Ruby Conference is a two-day event (November 19th & 20th) celebrating Ruby's ecosystem and future, featuring talks on open source/AI tooling, Ruby at scale, CTO panels, and startup demos, organized by the SF Ruby Meetup group.

That’s all for now! Stay tuned for the next edition of The Ruby AI Newsletter. Be sure to reach out if you have any stories, content, jobs, or events you would like to see featured.