From Vibe-Coding an ETL to Rebuilding my Entire Site: An AI Post-Mortem

After vibe-coding an ETL tool, I decided to push the experiment to its logical conclusion: I rebuilt my entire website using AI.

The brief in my head was simple: Modern aesthetic. Dark mode. Blue highlights. Minimal noise. I wanted something that felt intentional and current. What I got instead was a masterclass in how AI behaves under the pressure of constant iteration.

1. The WordPress Wall: Starting Over was the Only Way

I originally tried to modernize my existing WordPress site. That was a mistake—and the struggle was universal. Trying to layer AI-generated CSS on top of legacy themes and plugins is like trying to change the oil of an airplane in midflight. Regardless of the model, the deep abstractions of WordPress were a nightmare. I would ask for a spacing fix; the AI would “confidently” provide code; I would refresh, and… nothing. Eventually, I realized that technical debt isn’t worth vibe-coding around. Scrapping the old site and starting from zero was faster, cleaner, and suffered from far less “entropy.”

2. The Aesthetic Drift Problem

Across Claude, ChatGPT, and Gemini, a recurring ghost haunted the machine: Aesthetic Drift.

I would define my blue accents. Three iterations later, the blue would quietly turn beige. Headers would change weight for no reason. Spacing would collapse. Small edits triggered unintended global shifts.

To stabilize the design, simply telling the AI “I want this, exactly this” wasn’t enough. I had to literally copy-paste an entire example page into the prompt and say: “Keep the design language identical to this.”

  • The Winner: Gemini was the most consistent at maintaining that standard of look and feel across iterations.
  • The Rest: Claude and especially ChatGPT were far more prone to “creative reinterpretation” (read: ruining the layout).

3. The Refactor Trap: Structure vs. Voice

This was a universal frustration. Every model—Gemini included—suffered from this. I’d paste a block of HTML and say: “Move the CTA button below the cards. Keep everything else the same. Do not change any text. Preserve all copy exactly.”

Ninety percent of the time, the model would move the button, but it would still take the liberty of “improving” my headlines. It would tighten my copy, shift my tone, and rewrite my value propositions. To an LLM, structure and messaging are all just editable tokens. Even when explicitly told to leave the copy alone, the optimizer in the AI couldn’t help itself. I spent more time restoring my original voice line-by-line than I did moving buttons.

4. Image Generation: Split Decision

  • Gemini: Frequently offered to create hero images, but it was a coin flip whether it would follow through. Often, it would hit a strange “reset” and suddenly claim it was only a text model—even though it just had.
  • Claude: The clear winner. More consistent, better outputs, and easier refinement, though it occasionally tripped over its own safety guardrails.
  • ChatGPT: It would generate images, but they were often nonsensical. From warped anatomy to “AI hallucination” logic, the quality control just wasn’t there for a professional site.

The Final Scorecard

FeatureGeminiClaudeChatGPT
Design ConsistencyWinner (Best at keeping the ‘look’)ModerateLow (Prone to visual hallucinations)
Copy IntegrityFail (Ignored “do not edit” rules)Fail (Ignored “do not edit” rules)Fail (Ignored “do not edit” rules)
Image GenerationUnreliable workflowWinner (High quality)Often nonsensical
CSS HandlingStruggled with WP layersModerate

The Real Lesson: AI is an Optimizer, Not Just a Coder

Vibe-coding works. It can compress weeks of development into days. But it doesn’t remove the need for Product Thinking. If you give an AI something that looks “improvable,” it will improve it—whether you asked it to or not, and even if you explicitly begged it to stop.

The biggest insight from rebuilding my site wasn’t which model won; it was this: If you don’t know exactly what you want, the AI will decide for you. And halfway through, it might just decide something else.

Leave a Reply

Your email address will not be published. Required fields are marked *