The Vibe Coding Ratchet

A ratchet is a mechanism that only moves in one direction - it clicks forward but can't click backward.

When you're in flow with an AI coding assistant, each "ooh what if we also..." only adds scope, never removes it. You can't un-have the idea once you've had it and seen how easy it would be to implement.

I revisited the CryptoKitties hype, and thought it would be cool to generate an image of the connections between my kittens.

I ended up vibe coding and releasing an open-source interactive family tree visualizer for CryptoKitties.

The sequence:

  1. "Just generate an image"
  2. "Actually make it interactive" (click)
  3. "Add owner highlighting" (click)
  4. "Right-click context menu would be nice" (click)
  5. "Should work embedded too" (click)
  6. "Need a Python tool to fetch data" (click)
  7. ...40 commits later

Each step feels small and obvious in the moment. But the ratchet only goes one way - you never say "actually, let's remove the mewtation gems and simplify". The ease of implementation removes the natural friction that would normally stop scope creep.

It's not a complaint. It's what makes vibe coding fun. But it's why "generate an image" becomes "open source project with a README longer than most blog posts."

I'm now considering asking Claude Code to add 3D visualization, but Claude is resting (quota exhausted).