$ cat metaphor-generator.md
The Metaphor Generator Nobody Asked For
Product management requires constant translation between engineering, leadership, and customers. You paint pictures with words. You make the invisible visible. And sometimes, when you're explaining why we can't just "make it faster" for the 5,867th time, you need something more memorable than generic airplane construction analogies. After telling my team I need better, well, actually, funnier metaphors, I decided to build The Metaphorator.
I wanted to type in a concept, pick an audience, and get 3-5 creative, funny, or just plain ol' metaphors because some days thinking is tough.
Something like this can be built super simply with today's AI tools, but since I wanted this as part of my website, it became a bit more complicated. Thus, I decided to write about it.
Choices needed to be made
I could build a multi-agent system that included evals and all the bells and whistles. After all, I know how to do it since that's part of my daily work. There was also the simple choice, which is a strong prompt to my LLM choice (in this case, Claude).
I opted for the single prompt with a thoughtful engineering approach.
Why?
- Each agent call costs money and time
- Complexity compounds debugging difficulty
- This isn't solving the world's most complex problems; I'm making something dumb and funny for the workplace.
The lesson here is knowing when not to over-engineer.
Prompting…amirite?
Getting consistently funny metaphors required extensive prompt refinement. You can't just tell Claude, "Be funny." This is actually true of people as well. I spent years teaching and performing improv with real humans. It takes time, patience, and reps to find the funny. Instead of "be funny" in the prompt, I had to think about what we teach people when they are learning to write comedy. Thankfully, I've done that too. Most of my published work is satirical and comedic. I reached into that tool belt and refined away. I gave the prompt examples of good, bad, generic, and specific.
What it takes to build products
The reason engineers get frustrated when people ask why things are taking so long is that they don't understand that a button is never just a button. The reason product managers get frustrated is that behind every request is actually ten hidden decisions. If only there were a metaphor I could think of 🤔
The initial spec I drafted included a "Generate" button that produces metaphors. What happens if the user didn't find the first batch met their expectations? Can they regenerate more? Okay, if they do, does that replace everything (destructive, loses context) or does it append to existing results (preserves comparison, non-destructive)
The decision will ripple through the entire architecture. Choosing to append existing results means the frontend needs to maintain state. The metaphors need IDs for the copy functionality. The AI prompt needs to understand that it might generate additional metaphors, not start fresh. It's a better user experience. It also opens up risk.
Each metaphor generation costs approximately $0.003-$0.015. Doesn't sound like much until someone decides to stress-test my tool at 2 am.
Things to consider:
- Too restrictive = frustrating for legitimate users
- Too loose = my credit card cries
- Too complex = I'm building enterprise infrastructure for a side project
I decided on a 30-second cooldown between generations, 10 per hour per IP. Simple in-memory rate limiting that resets on cold starts. For a low-traffic tool, this works. For a viral hit, it would be a disaster.
Build for the reality you have, not the success you imagine. I'm betting on the low-traffic tool.
Every label on an app or website is a tiny product decision. `Concept to explain` feels corporate. `What concept needs a metaphor?` is better, but it's still bland. `What concept is making you want to fake a Zoom glitch?` Now we're talking. The `placeholder text` went through several iterations before landing on "whatever made you open this tool at 3 pm on a Tuesday goes here."
This is a familiar rhythm if you have ever written limericks about beer for weird, comedic spaces on the internet.
I built this tool using Claude Code, Cursor, and a collection of skills from this public repo. Using AI to build an AI-powered tool that helps people explain AI work. That's some real meta layers. The thing with AI is that it's a tool. It doesn't replace thinking through the product.
So why does all of this matter? If the tool isn't fun, people won't come back. And if they don't, all I've built is fancy portfolio wallpaper. And that's okay. This was fun to make and a helpful chance to practice product thinking, even on a small project.
Enter your concept. Pick your audience. Watch it generate metaphors that are somehow both ridiculous and painfully accurate. Use this to dazzle your colleagues with your freshly upgraded metaphor game.
The Metaphorator is live at lol-website.netlify.app/tools/metaphorator.
$ _