AstonJ
Anyone vibe-converted a Rails app to Phoenix?
- How did it go?
- Which tools did you use?
- Any tips?
Asking for a friend ![]()
Trending in AI / LLMs
Anyone vibe-converted a Rails app to Phoenix?
How did it go?
Which tools did you use?
Any tips?
Asking for a friend :sweat_smile:
New
Hi all :waving_hand:
I’m presenting “Building a Harness for Fun and Profit” at Colorado Startup Week on September 14, 2026.
tl;dr - I b...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #phoenix_html
- #iex
- #graphql
- #ai
- #genstage
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex










Showing Posts 1 to 6- Show Best Posts
- Show All Posts (oldest first)
- Show All Posts (newest first)
jdiago
I have not but if I were to, outside-in bdd sounds like a good fit.
Have your llm port the integration tests over. Run those and see them fail. Then port the controller/unit tests and follow the standard red/green bdd methodology until everything is green.
adam12
Not necessarily vibe-converted, but definitely LLM assisted. It wasn’t a Rails application, but it was in Ruby.
My memory is somewhat fuzzy on the specifics, but I relied on the stranger fig pattern a lot. I ended up putting a load balancer in front of both applications, and gradually moved endpoints over, as they were implemented.
The application wasn’t enormous, but had some risky parts - billing, for one. At time of migration, the Ruby application was about 16kLOC Ruby, almost zero JS (less than 200 lines).
In some sort of irony, it’s actually the first project I tried building in Phoenix way back in 2014. But I ended up grinding on an Ecto library for weeks for a feature I needed, which was an absolutely gruelling process. At that point I decided to just use what I knew, which was Ruby. But all the years past I still maintained that library, and it’s now being used in the rewrite (again).
OndrejValenta
We’ve later replaced it with db-gen, which is language/framework agnostic tool, and we are using that for years. Ecto is a big no-no in our projects. Even C# ones use db-gen instead of Entity Framework.
Dmk
Yes, I created Xamal this way.
mikesax
My first try was would match the “vibe-converted” description: It took an existing Rails app and asked Claude 4.x to convert to Elixir using high effort. The result was messy and not something I would want to maintain or use in production, so I discarded it.
Then, I told Claude to analyze the Rails project and create a detailed spec for a team that would have to implement this in a different language but would not have access to the original code or product. With that, I asked Claude to analyze this spec and determine what order to develop all the elements in, such that a user could start playing with the app at every stage. I specifically asked it to stay away from implementation details (so it wouldn’t suggest Rails-style “solutions” for things like caching or background queues).
This gave me a bunch of .md files that I used to create a brand new Phoenix/Ash project that I then worked through step by step to implement the way you would fresh in Elixir. It was a lot more work than anything vibe-coded/converted but I am quite happy with the result.
AstonJ
Thanks for the replies everyone - very helpful!
I think for this particular project I will try an LLM to upgrade it to Rails 8 (currently on Rails 4) because it has an e-commerce component and doesn’t really need the power of Elixir/the BEAM, but definitely going to try converting one in the future!
If anyone stumbles across this thread in future and has any further tips, please add them!