DEV Community

Cover image for I burned through thousands of AI tokens. Then a friend did it for free
Paulo Henrique
Paulo Henrique Subscriber

Posted on

I burned through thousands of AI tokens. Then a friend did it for free

(yep, kinda clickbait, just for the funsies 😊)

At the beginning of the year, I relaunched my portfolio site using Codex and Gemini CLI as my main development tools. It wasn't entirely vibe-coded: I spent several days updating content and researching best practices, plus a good pile of tokens on brainstorming sessions.

For personal projects, I'm trying to keep a philosophy of "done is better than perfect". So even knowing the layout wasn't what I wanted, I uploaded the site and let it sit for a few months, gathering data with the basics (Search Console and Hotjar, plus the usual analytics stack) to understand what organic visitors wanted to see and how they were finding me. When you have time, data is the best asset you can collect.

A few days ago, I started using Google Stitch to rethink the site presentation and, honestly, my whole "brand". Basically: who I am, and what more than 20 years of building things online should look like graphically. Somewhere in the middle of the color and font brainstorm, a logo idea appeared. Something I could use instead of just my name at the top, which is the usual for vibe-coded sites.

The brainstorm went well. The execution was a total mess.

The path to failure

Building things on the internet, I have 20 years of experience. But I started earlier, learning how to install Linux from floppy disks and how to configure my modem by hand, until I finally landed on shell scripts. Bash was always my main tool, and I wanted the logo to carry that. Something modern that could still hold my history. The idea was simple: my handle, phalkmin, with the h drawn as a slash to suggest a Linux path. A blinking cursor at the end. Simple.

draft of the logo

So I wrote a prompt and asked Gemini to create it, with a reference sketch attached and every detail spelled out. It failed badly. Then I tried ChatGPT, and guess what? It failed too. Even when I pointed out the exact problems and asked for specific fixes, every round came back as a fresh hallucination. OK, Claude can't generate images, but it can write SVG. SVG is basically code, right? It should work.

It failed.

Below are some of the results, and these aren't even the worst ones. Almost a week of tokens on the best models I could reach, and the output was comical.

Grid of failed AI logo attempts

Every single model I can access failed. Every? Not exactly. I have an OpenRouter account and OpenDesign installed, with access to GLM through my own keys. So I added $10 in credits and started working inside an app built specifically for design work.

If you're paying attention to the title, you already know how this ends: almost $6 spent, and the results weren't even marginally better.

I was frustrated and tired, and I seriously considered learning Inkscape or Figma just to build this damn logo as a vector myself.

Then it finally occurred to me: I have friends.

Yu-Gi-Oh smiley hand

Over the years, I worked with some of the best designers I know. Some as colleagues, some as people who reported directly to me. A few of them owed me favors. So, without spending a single token, I reached out to one of them and explained what I needed. And I kid you not, in less than a day, I had the logo in light and dark mode, blinking cursor included, plus a bonus monogram. All for the price of a coffee to be redeemed in the near future.

It's beautiful, and it's already on my site.

The final phalkmin logo

Why every model failed

Is this a post to conclude that "humans are better"? If you're reading this, you already know that creatively, yes, we are. The interesting part is why, because all the models failed in a very similar way, and I don't believe the problem was graphic quality or raw model capability.

Image generators produce pixels from statistical patterns learned across billions of images. They're great at "a cozy cabin at sunset" because that's a texture and composition problem, the kind of thing the training data covers millions of times. A wordmark where one letter has to work as two symbols at once is a different thing: the h must stay legible as an h while also reading as a /. That's a symbolic constraint, and there's nothing in the pixel-prediction process that enforces "hold both meanings simultaneously". The model renders something h-ish, something slash-ish, and hopes for the best, because it can't just say "I can't do it". Every model is instructed to return something, even if it's conceptually wrong.

The SVG route fails for a different reason. An LLM writing SVG is writing coordinates blind. It predicts tokens, but never "sees" the render. A designer draws a curve, looks at it, feels that the weight is off, nudges an anchor point, looks again. That perception and action loop is the entire craft. The model gets one forward pass and ships whatever geometry the math produced.

"But you can paste the render back and ask for fixes!" I did, many times. It helps less than you'd expect. Vision encoders compress an image into a representation built to answer semantic questions ("is there a dog?", "what does this sign say?"), and optical judgment barely survives that compression. The model can confirm the logo says phalkmin. It can't "feel" that the slash terminal is a few pixels too heavy, and the whole balance collapses because of it.

My hypothesis: creating a symbol demands intention and identity refined through iteration, where each round depends on genuinely seeing the previous one. My friend looked at my reference once and knew what was wrong before I finished explaining. Something that thousands of tokens and hours of back-and-forth work weren't able to do.

The coffee, by the way, will cost me less than the OpenRouter credits did.

Top comments (1)

Collapse
 
shako_nariman_42b9a324bd6 profile image
Coolbooy2002

Why we clickbating in 2026