Vibecoding a Blog Migration
Intro
Lately the topic of the day is AI agents and vibe coding. I have been playing around with some of the ai tools and figured I would jot down my thoughts. This is also a chance to dive into a bigger test of the tools and see where they help and where the limitations are.
The History
Initially it started out with the copilot style of AI which really was just a much better line completion than say intellisense from an IDE. At first, I have to say I was pretty impressed when I could just drop a comment in my code which was basically a TODO for me as I went and the AI would fill in the code for me. I guess this must have been around 2023 when I started experimenting with this.
The next phase was chatGPT and Grok. You could start to have a conversation around design and actually get useful ideas to implement. These systems improved even more when copilot released their updated plugin for JetBrains IDEs and you could both choose the model to use for the conversation, and it would have the context of the code you were working on. That was sort of my next phase of use.
Then Grok 3 dropped and I started seeing even better results than I was seeing on the previous models in chatGPT. Not only was Grok good at system design (if you knew the right questions to ask), but with deep search and deep think it replaced search engines for me. I was using that pretty heavily for a while until X jacked up their pricing, and it was more than I was willing to pay. That was right before the Grok 4 release, but the upside is at least 3 is free now and I still use it a fair amount.
In that same time period people were also talking up Cursor. I considered messing around with it, but I didn’t really want to have to change IDEs. I am a creature of habit and would rather continue to work in a Jetbrains environment, so any sort of VS Code derivative loses my interest even though I know that is where the market share is these days. So I ended up skipping the first phase of Vibe coding, but kept hearing about it on X and decided I needed to give it a look.
The Current State
So finally, a few weeks ago, I decided to try out Claude Code. At this point I have been hearing great things about it and had played with the model in the CoPilot chat but didn’t really get the hype. Then I installed Claude Code. I can safely say that now I get the hype. This is so far beyond copilot it was crazy to me. I think part of the appeal is just the interface. I have been using Ghostty since it was released last year, and I love that Terminal User Interfaces are making a comeback. Maybe it goes back to my old DOS days of the early 90s or when I started using Linux in 1995, (I believe Redhat 5.0 on CD-ROM was my first Linux distro), but it is just a great interface to work in.
Claude for refactoring
My first claude experiments were around a few things at work. We had a data engineering pipeline that was returning some errors in the transformations. I was looking at the code, and I was thinking if we did this using an ASOF Join in Snowflake instead of whatever crazy window function it was using it seemed like the code would be easier to read and understand and I thought maybe would work. The thing that always trips me up in ASOF joins is the match condition. I always end up doing it backwards or having to screw around with it to get it to work the way I am intending. So I asked Claude to refactor this particular DBT view and eliminate a particular CTE and then change a left join to an ASOF join. 30 seconds later we tested the suggested code and it worked perfectly.
Claude for application scaffolding
The next area I found it good is I wanted to stand up a new dotnet webapp. It is a simple app that will accept file uploads and load them into a snowflake stage and then call a document AI model to do a text extraction from some tabular data that we need to process. I have found Claude to be pretty interesting to watch when you really spec out what you want a project to be, and it is pretty interesting to watch it build up a TODO list and then just start cooking. It seems pretty good at building up the first 90%, and then you can come in and layer the key pieces of the app while spending minimal time on the boilerplate. For me, as someone with lots of children, what always stops me from picking up side projects at home is that I have very limited time to work on things and usually by the time I get through the boilerplate I don’t really have anymore time to work on the interesting part of the idea that I want to play around with.
Claude for blog migration
This is where pair programming with Claude seems to fix that. I have been thinking for a while that I wanted to migrate the blog from WordPress to a static site generator. The golden age of blogging seems to be over, so I have no interest in running a site, having to deal with all the updates and security and whatnot. I was just thinking what I would really like to do is use something like Hugo and I leaned towards Hugo mostly because I liked that it was written in Go. When I was at WNDYR we did something that was built with Astro as our static site generator and I liked the simplicity of building my content in markdown and just spitting out the site.
The other benefits of Wordpress were the comments and trackbacks, but again those aren’t really used heavily anymore, and they didn’t seem like it was worth it to me to run a database just for that. I found this project on github a while back and used it to export all of my content to markdown but then the boilerplate of figuring out how to get started with Hugo bogged me down, and it got set aside while I was busy with life.
This morning I woke up, and it occurred to me I bet that I could get Claude to take that content and build out the basic site for me. I started on it and have to say I went from the idea to the site is running in production in my spare time today. If shipping ideas can be this quick, I suspect hobby projects are going to make a big comeback. Today was also the first time I even hit the rate limits on Claude. I burned through all my tokens on the Pro plan, and it basically told me to come back in 2 hours. I used that time to research with Grok on how I wanted to deploy the site and what the best static hosting options were. I ended up going with Cloudflare Pages since I can host it there with my custom domain for free. The github integration is great with it, I just push a commit, and it regenerates the site with Hugo and deploys it. Going from concept to production in a day is empowering. I can now shut down my Linode server (they were a great server for the last few years), and save about $8 a month.
I find it kind of funny that my last post from 2022 was when I had last migrated my blog from AWS to Linode and here we are again. I am hopeful to get back to writing more frequently as I start to explore the new AI world and tools that are out. It feels like we are on the biggest shift in computing since either web 1.0 or maybe the move to the cloud. Either way it is the next big paradigm shift in the industry since I have been in it, and I am here for it. I am exploring the ideas around building a Software factory and how can we change the ways we work, to drive more software faster and greater business value than ever before. And like most big shifts in tech, the only way to really get it, is to start building otherwise you will be behind the curve.