The Sunday Post - I wrote a blog over the weekend and all I got was this lousy context window
I have a defective brain. Ate least one that can be a challenge to operate at times. I get these weird urges. Not that. Get your mind out of the... GEEZ! For instance, this weekend I started off trying to see how far I could go on an old laptop as a software developer, before I have to install a window manager. Just raw-doggin' a TTY shell. Turns out? Farther than I expected, but not far enough for my needs. That's for another post, I think.
The salient point is: I hit the wall pretty early and was left with a full weekend left to plan another activity.
I decided to redo my blog. I still like my current blog, but I've been minimizing over the past few years and I thought here, might be a good place to practice that minimalism. Last week, I messed with Claude Design for the first time and, after a few small tweaks, it came up with a minimalist deign that I really liked. So I decided I would feed that to my agents and see what could come up with. I wanted to see how minimalist we could go. Could we get to a no-framework, no-buildstep, super basic site? Start with this design.
AI
That was cool, but it only took like a second. I mean I just said the blog posts were about loving the terminal and TUIs and AI threw in the idea of VIM bindings to navigate ...yes, please!
AI
So we worked out a simple way to get markdown files transformed into a JSON array, and then a little JavaScript magic to list and filter those blog posts with hashed URLs.
AI
I just decided to host it on Cloudflare Pages.
AI
But I really didn't like the hashing in the URLs. My years of experience leads me to believe that this is going to cost me, in the SEO department
AI
So we looked at making a little Express website and just serve it like back in the day.
AI
So we got it all refactored for Express and ...come to find out...
AI
CF Pages doesn't support anything beyond basic, "Here. Serve these files to the Internet." It's got it's own little thing. Maverick? But the docs say, if I wanna use the Express site, I'll have to switch to a CF Worker.
AI
The domain had just propogated and I didn't want to go messing with it again. PLUS, the keyboard navigation was broken.
AI
So I thought: the markdown transform was pretty easy.
AI
What if we just out put it to plain-old HTML files instead? I write in Markdown. I LOVE markdown. Who'd have thunk? It transforms to html files for each blog post and the JS just reads the front-matter for the listing page. (Foreshadowing)
AI
So we did that instead and left the Express branch ...for now.
This worked better than I expected except for one thing ...the blog listing page. It was blank. Right! We weren't filling in the blog array anymore. What if we just throw the front-matter into that array and just use it for listing. The publish function can put just that in the list. And that worked a treat. Except the keyboard navigation was broken.
AI
I just think it's a cool little quirky way to navigate a site. My friends who are VIM-heads will love it and the rest probably won't even notice. So we fixed it.
AI
Now the fonts were all ...off.
AI
I don't know, they just didn't look like they looked before AI's "fix".
AI
I looked around and found it was just some font changes. But I noticed the styling was ...off.
AI
I was able to track down some font's that were now not getting imported, after AI's fix.
AI
I also noticed the Esc key doesn't take you back to the blog listing anymore.
AI
Then I thought: what if the publish function just generated a whole, plain HTML site?
AI
Then the whole thing is just a basic static site.
AI
That's where went and ran some tests.
AI
I always wanted some of those badges on my READM.md that say, you're code is good. It passes basic security, performance, and web standards. So I ran Lighthouse and Observatory against it and generated some reports to spark discussions with my PM-Agent. Who wrote three PRDs: one for SEO, one for performance, and one for security.
PM Agent
The PM Agent asked a few follow-up questions.
PM Agent
And we had three solid PRDs.
Then, me and my architect agent-
Architect Agent
Turned that into a bunch of tickets. Turns out a lot of the base SEO things made the performance and security things superfluous.
Architect Agent
Then we just had the Dev-Agents work the tickets.
Dev Agents
Then we ran the Lighthouse and Observatory scans again. Found a few more things and we sorted them.
AI
So, now the new blog is live.
AI
PM Agent
Dev Agent
Architect Agent
What does it all mean?
[Camera pulls back to reveal Lee sitting on the Jerry Springer set] I don't what any of this taught me, or if it taught me anything. I guess I felt some nostalgia for the way we "used to" write website back in the 1900s. I also was able to tangentially attach some experience from the past to today's landscape.
Architect Agent
AI
I also think that "vibe coding" works, but making PRDs, breaking them into specs, and working them in priority and dependency order works better. Whether you're dealing with unpredictable large language models, or even more unpredictable human beings.
Architect Agent
PM Agent
And after reading some of the code that AI generated, I'm not worried about AI taking my job as a programmer any time soon.
AI
Take care of yourself ...and each other.
Other Agents
PostScript:
NONE of this post was written by AI ...except the front-matter. I wrote both sides of the conversation. You're welcome.