DEV Community

daniel llach
daniel llach

Posted on Originally published at levelup.gitconnected.com AI-assisted

There Is No Magic Prompt: What It Took to Build a First Step Toward a Real App

A free color game for video calls, built with AI in a few days, and the unglamorous work no single prompt did for me.

I used AI to build it. Claude Code helped me with architecture and low-level code. I'm telling you that first because the rest of this piece is about what the AI did not do. It did a lot. But the thing people imagine, one clever prompt and a working app, is not what happened. What happened is closer to working with a very fast coauthor who needs a lot of direction.

It started at the table

It started over "la once", the Chilean evening tea. My daughter is seven. Her mom and I were talking about colors, and I started saying odd color names out loud. Then we turned it into a game. Someone said a name, we each described the color we imagined, and then we looked up the real one.

We spent a good while on it. At least we had fun.

That night I thought: this would work for team building. I've been through a lot of those in over 14 years as a dev, a lead and a manager. I could picture a team finding out what these colors were, and the stories behind them, in a competitive game.

So I made a folder and opened a new Claude Code session.

The first thing it did was turn my game around

My first message described the game: a strange color name, and you guess which color it is. The mockup prompt that came back had it the other way. Show a color, pick from four names.

It's a small thing. It's also the most useful thing I learned all week. When an idea is under-specified, an AI fills the gap with the most common version of it. Nothing in my prompt was wrong. It just didn't say what I actually cared about, and I hadn't noticed that yet.

What I cared about was the other direction. Read a name, work out what it means, and imagine how that turns into a color. I kept three options instead of open imagination, because the open version only works for people who already love this stuff. Options let everyone play.

That first prompt was very far from the app today. It took a lot of rounds to get here, and most of them were me noticing what was missing.

1. Decisions, not generation

The repo has 39 logged decisions. Some examples: if you don't answer in time, it counts as wrong. Only the host moves the game forward. Nothing enters the game unless a human has verified it.

None of those came from a prompt. They came from arguing.

Some arguments I won. The AI told me to tone the cover screen down so it matched the rest of the app. I kept it loud, like a book cover, because a cover can be the opposite of its pages. I also asked for desktop layouts from the start when it suggested one mobile layout for the MVP.

Some I lost, and it was right. I wanted the reveal screen to stay up for 15 to 20 seconds. It said four, and I tried four. Then I changed the standings pause twice after watching it, because tuning by looking is a job the AI can't do for me.

I follow one rule. I don't insist more than three times. A good insistence is not rewording the prompt: it's a mockup, a real effort. If it still isn't right after three, I lower my bar and meet it somewhere in the middle. Working with AI is making agreements, like with a person. You can give a colleague very detailed instructions and they will still put something of their own in. You end up with coauthors.

2. Constraints before architecture

I decided early that this would run on free tiers only. That changed the design.

The first plan was a static site on GitHub Pages plus a realtime service. Then it turned out my repo is private, and when I checked, Pages on a private repo needed a paid plan. So the whole thing became one Cloudflare Worker serving both the app and the live rooms. I still pay nothing for hosting. The only infrastructure cost so far is the domain, about $10 a year.

If I had asked for "the best architecture", I would have gotten the best one for somebody else's budget. Say the constraint first.

3. Green is not working

Early on, the AI wrote the server and 21 automated tests. They passed on the first run. Then I opened three browser tabs and played a round. Everyone answered, and nothing happened. The server never told the clients the phase had changed.

The tests were right about what they tested. They didn't test that. The fix was on the server, plus a test for every phase change.

The same thing happened with the build. It failed on the first push to a clean machine, because a generated file existed on mine and not on the server.

By Tuesday at 11:00, every screen existed and I could play a full game. It went live Wednesday at 09:43, about 23 hours later. Those hours were ghost players after a reconnect, a blank screen on refresh, and a game that got stuck when the host left. Eighteen of the commits are fixes. A demo and a product live in that gap.

4. Content needs a gate

Every color in the game has a short story, and I love that part the most. At the beginning there were 140 colors and 176 sourced tips. A color can only be an answer if a person marked its tip verified.

The first few rounds, I checked every tip carefully. They weren't copies of their sources. They were well written, they were interesting, and they followed my rules about what to cover and what to avoid. As that held up, I read them less closely. Now some tips I meet for the first time while I'm playing, and that surprises me in a good way.

I should be honest: that's a bet. The gate is still there, and nothing gets in without verified: true. What I stopped doing is reading every line the way I did at the start. If I were building a service where a wrong fact had a real cost, I would not make the same bet.

5. Launch is where prompts stop

After it went live, Cloudflare's analytics showed lots of bots and very few people. I added rules to block them, then anonymous counters, then a public stats page. That meant my privacy text changed, and the first article I wrote about the game was already out of date.

And I haven't mentioned the main thing yet: it has no players. It is not finished, and what is missing is the essential part. Architecture can be as solid as your AI-assisted decisions make it. Getting people to try it is the next big barrier, and no prompt does that for you.

So I'd call this a decent first step that might become a real app. Not a finished one.

What it would have cost

These are my estimates, not measurements.

Two years ago I'd have needed at least two weeks and a lot of late nights, with a rougher result and more gaps. Five years ago I probably wouldn't have started alone. I'd have built pieces of it to learn, not a product.

In a company setting a few years back, it would have taken a team. Product, UX and UI, one or two frontend developers, backend, devops and QA, over six to nine months in two-week sprints. It could be more or less depending on how ready the architecture and resources were.

The kit I'd copy

If you're building something real with AI, this is what I'd keep:

  • A decision log. What you decided, why, and what you rejected. So every new session doesn't start from zero.
  • Constraints first. Budget, accounts, tools you can't use. Before asking for a design.
  • Test the real thing. Green tests are not a working product. Open three tabs, or three phones.
  • A human gate for anything it researches. Sources, a verified flag, a rule for what can't enter.
  • A rule for when to stop insisting. Mine is three tries, then a compromise.
  • A plan for after launch. What you'll measure, and who will actually use it.

Back to the table

I keep thinking about that table. The game was fun before it had a line of code. The AI didn't give me that. It gave me the hours to find out whether anyone else would think so.

If you want to see where the first step ended up, it's at chromaparty.com. It's free, and a game takes 10 to 20 minutes. If you try it with your team, tell me how it went.

And here's my question: any recommendations on how I can get players for my game?


Originally published on Level Up Coding.

Top comments (0)