Adventures in Vibe Coding

Disclaimer: I know "AI" is controversial among my friends and followers. I discussed my thoughts about AI in general in an earlier post last July: On Directories. And Vibe Coding. TL;DR - the "coding" use case for LLMs is unique and largely does not share moral or ethical ambiguity of the other uses.

I like creating software again

I’ve been seeing a lot of my peers — web developers like myself who have been doing this for 15-20 years+ — talk about how “vibe coding” has renewed their old love for writing code building software. I get it.

My interest in software started as a way to scratch my own itch. Build little niche things for my own use, with little care for whether anyone else would want them.

The first large project I remember building in the 90s was a vaguely Star Trek-theme version of LORD, written in QBasic. Later, when I got my first real job in an office, I wrote some software to stream my local mp3 library to my work computer (well before streaming services existed). I wrote a little bookmarking service because I found logging into del.ico.us from work to be too onerous.

Those projects were small, achievable, and fun. I learned things and built useful stuff.

But over the years, my enthusiasm for personal projects waned. Professionally I kept writing software — but the scrappy, scratch-your-own-itch energy that got me into this in the first place quietly disappeared. The developer experience of building for the web got complicated fast. The shift to JavaScript-based development felt like a steep learning curve, and combined with the flakiness of early NPM, I found myself noping out of “modern” web development in my own time.

Enter Vibe Coding

Claude Code entirely eliminates the effort required to build a fully functional minimum-viable-product of my random ideas!

The current models have an uncanny ability to turn an idea — described in a few sentences, sometimes less — into a functioning prototype. From there, the rounds of tweaking and refining can begin, which has always been my favourite part anyway.

So over the course of a few hours on a weekend, I’ve been able to put together projects that might have taken me weeks. In languages I don’t even know.

Ongoing vibe coded projects

Over the past half year or so, I’ve built some pretty neat weekend vibe coded projects.

For each and every one of these projects I let Claude code take the wheel. Rather than manually edit code like I used, Claude did all the dirty work. I have likely touched less than a dozen lines of code across all of these projects.

wpg.beer, taproom directory

I built wpg.beer so that I could easily know what’s open, it continues to be super useful to me personally; and it’s also being visited by about 2,000 unique visitors every month. Plus it’s ranking on Google for “Winnipeg Taprooms”.

Now powered by Claude CoWork

The most tedious task with the directory site was keeping the hours data up-to-date. When Anthropic recently added the CoWork product to Claude’s desktop app, I immediately set up an automation to do this for me!

  1. Collects the current hours from each brewery’s instagram page.
  2. Compare it with the last known hours.
  3. Update wpg.beer through the admin backend, by manually updating the forms for me.

It’s scheduled to do this once a week on Sundays and it works like a charm!

pegguessr.fun, birds eye view geoguessr

I created pegguessr.fun as a neat outlet for my drone photography and a small motivation to get myself back into the hobby.

I wish I had saved my initial prompt, it was something like:

Create a geogeusser style game using my drone photography. Laravel. With an admin to upload and manage my photographs. Keep score client side using local storage.

I included some technical detail use Laravel, keep score client side. But one thing I did not do and never had to do was explain what a “geoguesser style game” is. It new exactly what I meant, it wrote all the backend calculation code, and front-end UI. In fact, the core game system is a piece of code I did not have to modify, beyond tweaking the scoring algorithm to make it make more sense for a city Winnipeg’s size.

I was totally blown away!

Dipatch: newsletter reader prototype

Dispatch is a prototype gmail client designed to help you read newsletters by providing a distraction free and focused reading experience.

This is my first foray into iOS development in 17 years. And it’s the first time I’ve ever noodled with Swift.

When it identifies a newsletter in your gmail inbox, it immediately archives in so that you never have to see it cluttering up your gmail inbox again.

The Dispatch app present it to you alongside your other newsletter subscriptions. It has some unique, opened, read and unread states that are handled in a way that makes a lot of sense to me. But might never make sense to anyone else.

If you want to try it out, shoot me a DM and I’ll add you to TestFlight.

Realms of AI

Realms of AI is my latest weekend vibe coding project. It hearkens back to the Star Trek themed LORD game I made over 30 years ago.

It’s a text-based adventure in the style of an old ASCII-art BBS game, with one twist: every NPC is powered by a live LLM conversation. You’re not reading canned responses, you’re actually talking to the characters.

The whole game system — NPCs, quests, rooms, items, enemies — is defined in simple .md files, and Claude Code even wrote a CREATE_MODULES.md that lets you prompt new modules into existence. Players bring their own Claude API key; Haiku keeps it cheap to run.

I mainly wanted to know if this concept even worked. Would LLM-powered NPCs actually add anything in a format this simple?

They really, really do.

It’s written in Python, a language I don’t know. It would have taken me a month of weekends to get here on my own.

It still needs work and if you want to contribute you can check it out on github.

What next?

Reviewing this list, these four projects seem like an awful lot to manage. And they would be, if I was trying to promote them as products. But these are entirely stand alone things that live on their own, essentially purely for my own enjoyment.

These four weekend projects are more personal projects than I’ve gotten off the ground in the last 20 years. Literally.

Vibe coding isn’t about offloading your brain — it’s about removing the friction that got between me and the stuff I actually wanted to build. The tedious scaffolding, the unfamiliar ecosystems, the hours lost to tooling — those were the things that killed my enthusiasm, not the building itself.

It’s like a time machine. I’ve regained some of that scrappy, anything-is-possible energy that I thought I’d just…aged out of.

I’m having so much fun again, building things that I just want to exist.


Comments

Leave a Reply

Only people in my network can comment.