5 May, 2025
It has been about 6 years since I last made a blog post, so I decided to go tidy up my website. I wanted something simple and easy to maintain, that would encourage me to "just write", and I did not want to lose all my old materialMy first website was on wordpress during grad school, and I still hope to rescue that content someday.
I had previously used Hugo, a static website generator that was hip in 2016. Unfortunately, the theme I had been using seems to have become spammy beyond recognitionlink, but probably don't go there. I recall trying to update my version a few years ago, and finding it... difficultI believe the advice was to read through the CHANGELOGs one at a time, and I was like 20 versions out of date then: at the time I bisected versions of both the theme and the binary until I could at least build and deploy the site.
I also no longer liked how the old site looked. Seems like it was time for every software engineer's favorite idea until they actually do it: A TOTAL REWRITE.
I have been a longtime fan of Armin Ronacher's projects, recalled he had released some software for blogsLektor and figured "simple" might mean just laundering my decisions through someone whose taste I trusted, and who had thought harder about this.
At the same time, I was interested in trying out "vibe coding" - my day job is working on reasoning in LLMs, but I have not actually used them that often. So I downloaded WindSurf, started a new Lektor project, and gave it a shot.
A partial tree of where I got to with porting my website to lektor:
It went ok at first! I chatted with the LLM about my plan, "we" decided to put my old site in the project
directory, and it appeared fairly familiar with both Hugo and Lektor formats. The LLM identified a bunch of
.md files that I needed to port, and it tried running this all through
pandoc
. The files I checked consisted of just a title, so I asked the LLM to grab all the
metadata (date, author, tags) for me, but it took a long time to do this, and I was manually checking it all
anyways. Additionally, I gradually realized that I was just moving from markdown to lektor
files, which each have their own adhoc way of storing metadata before converting everything to html.
After spending about 90 minutes on this, I decided to start over.
At this point I suspected that I wanted to just have html and css, using a basic theme. This might have been the most useful thing I got from the LLMs: I wroted down my goals for the website, wrote down my current thinking That is, (1) I should keep trying lektor, (2) maybe there is another static site generator I do not know about, or (3) I should just use html and css and then asked for what to do. I got a reasonable answer with positives and negatives, but really had done the hard thinking myself while posing the correct question. LLM as a therapist, I guess.
I gave porting my old site another go, at this point having 4 variously named folders for my website on my computercolinweb, web_home, static_site, website for the project. WindSurf did an ok job of creating html stubs for each one. I ended up still manually inspecting each one for having it look reasonable, and for making sense in the new organization of the websiteI no longer have a separate space for "Projects", and I now have more published papers. I decided to merge those two to reflect that I consider both a form of knowledge sharing. The vibes were somewhat helpful in editing, but a lot of it was manual anyways. The most helpful was to go in and manually edit some things (mostly LaTeX delimiters, moving from "$" to "\(" and "\)"), and whichever base model I was using would pick up on it pretty quickly letting me tab through the rest of the changes. In the past I might have come up with a regex, but this saved some time.
So did it help? My best guess is that the total project took me about the same amount of time as it would have without "vibes". The most helpful bits were
That last point actually reminds me of when I started learning vim
: it makes me modestly faster
at text editing, but mostly I find it is a fun little sidequest to keep my brain interested. I tried to use
the LLM to take care of boring stuff, and it was modestly satisfying trying to get it to do that
efficientlyWhen I want to navigate forward to a certain
word in
vim
, trying to decide on f+$LETTER
or $Nw
does not really matter,
but feels great when you really nail it. #hacker #vimlyfe #xtremewordprocessing.