📦

A vibe code migration (1 sept 2025)

I want to migrate my tinder for horses application. I’ve started feeling like it deserves it’s own domain. Since I don’t want to infringe on any trademarks, I’ve decided to rename the application to:
Second Horse Dating - Saddle up for love. (secondhorse.nl)
 
Migrating my project to this domain takes some work, and usually this consists of:
 
 
Now, instead of thinking and even worse, doing manual labour at my desk, I decided to let me be guided and (hopefully) assisted by ai.
 
I’ve informed GPT-5 in my current project’s CLI on what I’m planning to do, and it gave me some instructions:
notion image
 
Like a real vibe coder, I’m too lazy to read and I just wanted it done with my own prompts:
With just 1 simple prompt, I should have created something:
notion image
 
notion image
 
This worked.
notion image
 
Now I sadly enough needed to click around in Vercel to setup my domain name & DNS records for a proper redirect. But I of course asked my CLI to create a new folder with everything for the second horse application to function properly.
This is where it started taking some time. It could be my configuration, that I am working with Windows Subsystem for Linux, it seems to be generating the files instead of just copy pasting them.
It took about ~10 minutes and multiple approvals for me to get a folder that I should be able to copy paste in my new repo. Let’s see if it works.
 
notion image
Too bad, some imports don’t work. They probably haven’t been added in the package.json.
 
By now you’ve probably wondered, how did he generate a new project and is he still working in his old project? Isn’t that too much context? I don’t know, I just opened 2 CLI windows. I try and Isolate issues for the model in order to not confuse it. I’ve found from my past weeks/months of experience with prompting that this gives me the best results.
notion image
I let the CLI “get familiar with the project” and it already suggested some more scaffolding, since this wouldn’t work according to it. Sure, I let it do it’s thing.
A few more prompts, feeding it it’s own errors, and telling it to adhere more to the original files, I ended up with this:
The before
The before
After migration and a few prompts
After migration and a few prompts
And after a bit more prompts, telling it to trust unsplash and to give me my footer (which i dragged in manually)
And after a bit more prompts, telling it to trust unsplash and to give me my footer (which i dragged in manually)
Now keep in mind, I didn’t check what it moved at all. I just let it do it’s thing. It seems to have lost some bits of it’s styling, but the main app seems to be working.
I haven’t hooked up the database yet, so this will be my next (manual, ugh) step.
I got tired of having to approve everything. I created a docker image that is able to run Codex in a container, in which I gave it full access. Quite literally as OpenAI´s documentation states:
 
Now currently I’m not an expert at docker, not even close. I got it runnung using the following command:
 
After this I ended up placing the entire old repo inside of the new repo. I gave it instructions to replicate the old page and it’s functionality, and told it that I will delete the content of the old repo soon. With this, it started reproducing almost all functions. A few I had to remind it of manually, such as the chevron button for expanding and collapsing the profile description.
 
All in all, this migration was a bit bumpy, but I still haven’t had to write a single line of code
 
A vibe code migration (1 sept 2025) - Sam van Noord | Sam van Noord