My early adventures in vibe coding

With AI's help, I've been having some bluesy fun, setting up webervers, and more.

By Peter A. McKay | About | Follow: Email: peter[at]pmckay[dot]com
B.B. King in concert in Hamburg in 1971
B.B. King in concert in Hamburg in 1971. Unedited photo courtesy of Wikimedia Commons under Creative Commons License

Sometimes the right tech idea can be applied in the wrong place.

In my opinion, that's becoming an issue around AI-assisted "vibe coding." Crypto world has also been doing something similar with its digital asset treasury (DAT) model, which strikes me as potentially quite useful for private companies, not a good rationale to do an initial public offering on the New York Stock Exchange. But I may come back to that another time.

For now, let's stick to vibe coding: A lot of mainstream press coverage of the phenomenon focuses either on Silicon Valley startup founders adopting it, on the Death Star-sized tech giants laying off scads of developers in lieu of vibe coding, or in some cases, on Big Tech hiring devs back because they've belatedly realized they actually do need a little human judgment in their workflows after all.

Are these use cases really the "sweet spot" that would benefit most from vibe coding, though? My hunch is it should be exactly the opposite: The less experienced developers. The businesses we don't think of as "tech companies" that need to level up their currently nonexistent development chops in order to survive. The companies whose worlds might get "eaten by software", to borrow the famous phrasing of venture capitalist Marc Andreessen several tech bubbles ago.

Think local taxi companies, not Uber. That's probably who should be vibe coding.

In that spirit, I've been doing a little AI-assisted coding myself lately.

Previously, I had picked up some web-development skills, including some JavaScript work, when I was doing my own media startup some years back. But I've since worked primarily in marketing and content roles in tech. So I wouldn't really say I'm an engineering expert in the latest web frameworks and so forth.

In short, I still know enough to be a little dangerous, and to have a much better collaboration with developers when necessary than a person who's never touched a text editor might. At a high level, I can usually understand what the devs are doing, how they're building it, and what their pain points are. And that's been plenty in most cases, even if I can't exactly do their job myself.

With tools like Gemini, ChatGPT, and Claude in hand now, I've decided to get my hands dirty again with some coding again, out of pure curiosity.

Below is a quick summary of my results so far. These are all personal web projects, shared via my GitHub under open MIT license. So feel free to share, use, and modify away. 😊

Pete's Ultimate Blues Name Generator

May as well start with the most fun item by far. You can give the Blues Name Generator a try here. Or check out the code here

Frankly, this little project started as an inside joke with a friend who's a professional jazz musician. Then it just went way too far! LOL.

In terms of development, ChatGPT was particularly helpful in getting the logic and the form to work correctly using vanilla JavaScript, after my initial failed attempt. The HTML, CSS, and most of the actual nicknaming options were created the old-fashioned way by me, with a few additional suggestions from the bot.

Important lessons learned: Human-AI collaboration is an underrated thing amid the current hype. Progressive iteration also still matters, bot or no bot. The idea you sometimes see of a person writing a single prompt, then an AI spits out a fully formed app on the first try, with no changes or debugging needed, is probably not how your vibe-coding project will go.

Boulevard

This is a simple front-end web framework I've begun work on, consolidating scripts, styles, and HTML templates from a couple of my personal sites. I figure that will make the stuff more re-usable in case anyone else wants to use it for their own site. Plus it'll be easier for me to maintain consistently and deploy quickly in my own projects in the future.

The main Boulevard repo on GitHub is in very, verrrrry early-stage shape right now, frankly. But you can already see some of the ideas that will go into it in action on my personal site's homepage and my blog.

In particular, I've been using a mix of Claude, ChatGPT, and Gemini to write and refine scripts that use data from my RSS feed to present headlines and links to my blog posts in different ways.

On my homepage at pmckay.com, my content is turned into postcard-like summaries that you can click on to see a full blog post. Meanwhile, on my blog's separate homepage, the same RSS feed is used to present a simpler reverse-chronological "river" of text headlines and links.

My next scripting task with Boulevard will be to make either of these methods usable as a template for other sites.

In the CSS, I'm also formalizing an approach to design. It's based on the 12-column responsive grid in Dave Gamache's trusty Skeleton framework, with custom typography and other updates added in.

Servers

I've said before that Gemini was hugely helpful recently as an IT assisant while I was setting my newest Nginx webserver, the one that currently handles my personal sites' daily traffic. Gemini helped with security, issuance of my digital keys, installation of different software packages I needed, troubleshooting, and more.

Along similar lines, I decided this week to ask Claude to help me update the first Node.js server script I ever wrote for my startup, back in 2013. I don't really have a pressing need to use this one at the moment, to be honest. But that was exactly the point. I was just curious to see how the bot might handle such an old project, and if anything could be done with it at all.

Happily, Claude suggested a relatively light makeover that works fine for serving pages over unencrypted http. Code is available here, perhaps useful if you need a simple local server for testing or something like that.

As a followup, I think I might tackle creating a more capable, encrypted https script with Claude at some point. Perhaps update my startup-era server along the lines of what we just did with my old unenrypted script. Or maybe just begin from scratch. Hmmmmm...

Conclusion

My general approach to AI at this point jibes with a recent take by entrepreneur and longtime blogger Anil Dash that I absolutely loved. He describes a relatively little-publicized majority view regarding AI among people on the front lines of tech companies right now:

Most people who actually have technical roles within the tech industry, like engineers, product managers, and others who actually make the technologies we all use, are fluent in the latest technologies like LLMs. They aren't the big, loud billionaires that usually get treated as the spokespeople for all of tech.

And what they all share is an extraordinary degree of consistency in their feelings about AI, which can be pretty succinctly summed up:

Technologies like LLMs have utility, but the absurd way they've been over-hyped, the fact they're being forced on everyone, and the insistence on ignoring the many valid critiques about them make it very difficult to focus on legitimate uses where they might add value.

Exactly. Regarding development in particular, my hunch is that the hard parts of software like reliability, edge cases, and production resilience still require human judgment. Vibe coding may shine at getting you to a prototype, but production still demands human grown-ups.

The point shouldn't be to have AI simply "build it for me," full stop. Better to use it to act like an always-on pair programmer who never gets tired of explaining things, and who’s surprisingly good at spotting brittle logic.

The good news is there will be massive value in that for a lot of users. No need to exaggerate or pretend otherwise.

That's it for now. If you want to receive future development updates like this, the best way is to subscribe to my personal email list here. You can also follow me on GitHub, on BlueSky, or via RSS.