images/vibecoder.png

Vibe Coding for the Code-Illiterate: My Ongoing Journey from Idea Guy to Creator

Not a developer? No problem. In this post, I share my journey into vibe coding—AI-assisted software creation—from the perspective of a code-illiterate Idea Guy. With tools like Claude Code and GPT-5, I built agents, launched projects, failed spectacularly, and learned a ton. This is a story of experimentation, frustration, and discovery, showing how non-developers can start building functional prototypes and contribute meaningfully to software development at Elisa
Picture of Author Santeri Suominen
Initiative Lead

🔓 Chapter 1: No More Excuses, Just Vibes

The latter half of the 2020s seems to be the era of Idea Guys turned Creators. I’m basically an Idea Guy myself, but I’ve worked closely enough with engineers to develop a drive—and a bit of obsession—for making things work. At the same time, I harbour a deep dislike for asking favours or being dependent on others to bring an idea to life.

Enter vibe coding. It feels like it was god-created specifically for people like me. No more excuses. If you’ve got an idea, you can build something. But you still need form and purpose. You need spatial awareness and the skills to wield this alien intelligence properly—and to stop obsessing over its shortcomings. The potential benefits far outweigh the risks. It’s not perfect, but the progress made in AI-driven software engineering in the first eight months of 2025 is compelling enough that hopping on the bandwagon now makes sense to me.

A Hopeful beginning
A Hopeful beginning

🤷‍♂️ ἓν οἶδα ὅτι οὐδὲν οἶδα

A strange thought crossed my mind when I started this journey: Good thing I’m not a developer. Why? Because I’m unburdened. I don’t know what’s “right” or “wrong” in code, so I don’t feel the burden of building right: I can just focus on learning from mistakes I’m inevitably making. I’m mostly code-illiterate, with a twinkle of intuition and a healthy dose of self-awareness. I know that I know nothing.

Socrates—the gadfly of Athens, ugly, brave, annoying, and wise—understood the importance of knowing the limits of one’s knowledge. That’s a lesson I try to live by. It’s the torch I carry into the unknown. I know it sounds arrogant, but I’m being earnest. And let’s face it: that’s all I’ve got, since I can’t write code and don’t have the pants to sit down and learn. I’m fired up for this learning opportunity with AI, which is what this really is—a learning journey. I hope some of these learnings are of inspiration for non-coders, or at least a cautionary tale.

🚀 The Claude Code Spark

I stayed away from vibe coding for a while, waiting for it to get good enough. It never quite helped me cross the chasm from Idea Guy to Creator—until I saw a LinkedIn post from Roope Rainisto, a designer/creator polymath who built a SaaS over the summer using Claude Code. His enthusiasm, combined with other rave reviews, made me feel like this was the current meta of vibe coding. And it’s not just about AI writing code—it’s about agentic capabilities. At last, I could have my own software team. So I jumped on Coursera, started a course to learn the basics, and quickly transitioned into setting up Claude Code with VSCode. I began developing a test project—not too ambitious, but definitely not boring.

🎶 Chaos Muse: My Pet Project

I fed Claude a pet project I’d defined earlier: Chaos Muse, a co-creator tool for indie musicians. It’s designed to generate genre-specific brainstorming material—lyrics, visuals, songwriting ideas—based on curated references and user prompts. It’s not meant to generate finished music, but to act as a creative engine. It’s weird and antithetical for an underground amateur musician to deploy tech into such a delicate process. But I wanted to test the limits. Could it inspire? Could it understand my taste and references? Previous attempts were… bad-ish. Let’s see if Claude could do better. I had written a long version of the idea with ChatGPT in the spring, fed that into Claude, and asked it to break it down into a project prompt and agentic workflow. It might’ve overdone it, so I refined the agent prompts until I had concise, actionable role descriptions. Claude even claimed to know the best way to instruct itself—which I used as much as I could. Here’s the agent lineup I ended up with:

Perfecting the agents was the most fun part. Did they work? No idea. They looked convincing—but looks can deceive. Remember: I’m code-illiterate.

Honeymoon phase
Honeymoon phase

🛠️ Laying the Groundwork

Working with agents takes time. You sketch the idea, ask AI to refine, verify, critique—especially when your own knowledge is lacking. The golden rule: ask a lot, but ask rigorously. Define the work clearly without micromanaging. Bracket the area of execution. Then it was GO time. I fired up Claude in VSCode and started vibe coding. Watching the agents work felt magical. They looked like geniuses. I was convinced this was going to be a smash hit.

🧱 Reality Check: Rate Limits & Broken Promises

The agents were eager to burn tokens, and I kept hitting rate limits mid-task—even when I asked Claude to assess token usage beforehand. When limits reset, Claude could often resume tasks, but sometimes needed reminding. This was challenging, especially since I had no idea how to manage software projects. To someone like me, Claude’s output looks convincing—but I can’t verify it. I can’t glance at the code and know what’s wrong. The future isn’t quite ready for chumps like me. You still need expertise. But I’m learning, and I’m seeing software built in real time by a team of 16 agents. That’s motivating.

🧨 The Big Fail

Then came the slog. Claude kept telling me the code was great, everything was Gucci, the project was awesome. But I couldn’t connect to localhost. Every agent took turns “fixing” the issue. Nothing worked. Claude kept claiming success, but it was broken every time. I felt idiotic. Vibe coding felt like a betrayal. If someone who understood code had looked at it, they’d probably have fixed it in minutes. I was hammering a tiny nail with a sledgehammer, blindfolded—and broke the wall around it. So I stepped back. Asked Claude to document the errors and efforts. Then I went to GPT-5 with a ridiculous document avalanche. It gave me a list of possible fixes, which I fed back to Claude. And it bloody worked. A fresh perspective from another alien brain. It suggested a course of action that not only worked, but stabilised future development. We had safe mode. A recovery console. I learned to branch unstable features away from the stable main.

The Great failure
The Great failure

🔁 Back and Forth: Debugging & Discipline

The rest of the journey was a loop of errors and fixes. Having GPT-5 as a second LLM was crucial. Claude sometimes forgets what we’ve agreed on. After I disciplined it with my disappointment, it behaved—for a while. Context is still an issue. Partly a skills issue on my part. Understanding what’s in the model’s context, when to compact it, how to demand documentation so the model can refer back after compacting—these are skills I’m slowly learning. Eventually, I kind of vibe quit on chaos muse, or at least put it on a shelf for now. Nothing that probably couldn’t have been fixed with enough debugging, but alas: Too many errors. My initial approach was perhaps too enthusiastic and simply wrong. Poor documentation for prepping. Too much code too fast, no testing. So I started a new, simpler project, which fetches and digests info about newly released alternative rock music from multiple sources, and writes daily AI summaries about what is happening in the “scene”. This time, I focused on good prep documentation.

Breakthrough

🧾 Codeguide.dev & New Beginnings

I stumbled upon a promising early-stage service called codeguide.dev, which offers a surprisingly smooth “from idea to documentation” workflow. It also features agentic, autonomous codespaces that can generate the foundational structure for a software project.

Here’s how I used it:

Very nice!

New Path
New Path forward

As a side quest, I fed these documents back into Claude for analysis. I wanted to understand their general structure to reuse and adapt them for future vibe coding projects—a resource I now consider essential.

Once the project structure was created in codeguide’s autonomous codespace, it pushed the code to GitHub. I synced the repo to my VSCode and resumed development with Claude Code. This time, I actually got the app deployed on render.com—and it worked! I’m now refining the features, designing new ones and implementing them in a controlled fashion. I can’t believe I can actually do this.

One new trick I discovered: asking Claude to maintain an up-to-date development diary. This helped manage its context more effectively. Claude could cross-reference the diary with the implementation plan to understand where it was in the project. It seems to work alright.

🧭 Still Learning, Still Building

My vibe coding journey doesn’t end here. It’s ongoing, and my learning is accelerating. Someday, I might build something that actually works and provides value also to others. I couldn’t do it without AI. And I know it’s only going to get better. It’s a fascinating mix of meta skills: understanding LLM strengths and constraints, iterating ideas, building proper context, and debugging with multiple tools. Eventually, I hope to bring these learnings into the tools we use at Elisa, and build internal products that benefit business development and agent orchestration. I already have several ideas I’d like to vibe code—not to make a final product, but to build functional mockups and prototypes. That’s how I’ll finally cross the chasm between ideas and implementation. Imagine this power in the hands of any non-developer at the company. And what it enables real developers to pull off? That’s the future I want to help build.

🧩 Key Learnings from Vibe Coding

Empowered creator