I Vibe-Coded an App in Just Two Hours (And Regretted It the Next Day)
I Vibe-Coded an App in Just Two Hours (And Regretted It the Next Day)
我用“感觉编程”两小时做了一个应用(结果第二天就后悔了)
My daughter is three years old. She broke her toy guitar and wants a new one. Instead of another toy guitar, I bought her a real Ukulele. It’s small, lightweight, and perfect for a small girl. Besides, it sounds way better than the annoying toy guitar. She loved it. But I’m the one who played with it the most. 我女儿三岁了。她弄坏了玩具吉他,想要一个新的。我没有再买玩具吉他,而是给她买了一把真正的尤克里里。它小巧轻便,非常适合小女孩。此外,它的声音比那个烦人的玩具吉他好听多了。她很喜欢,但玩得最多的反而是我。
I don’t know how to play the ukulele. I was learning, and it was fun. One Saturday morning, exactly at 7:15 I got an idea for an app. Have you seen karaoke apps? You sing karaoke while the lyrics on the screen scroll down. I wanted to build one like that for Ukulele players (for myself). They can see the lyrics and the Ukulele chords scrolling on the screen. They can sing along while playing the ukulele. 我不会弹尤克里里,但我正在学,而且觉得很有趣。一个周六的早上,确切地说是7点15分,我产生了一个做应用的想法。你见过卡拉OK应用吗?你唱卡拉OK时,屏幕上的歌词会滚动。我想为尤克里里玩家(其实是为了我自己)做一个类似的应用。他们可以在屏幕上看到滚动显示的歌词和尤克里里和弦,边弹边唱。
The best part: you can find Ukulele Chords for almost any song ever sung on the planet. It doesn’t have to be “Country Roads” or “Somewhere Over the Rainbow” all the time. You can type in any unpopular song; the app can still generate chords for it. I want to build it with an AI agent that finds the song on the internet (YouTube mainly) and uses that to infer chords. Thus, as long as the song you typed in the search bar is somewhere on the internet, you’ll find the chords for it. 最棒的部分是:你可以找到地球上几乎任何歌曲的尤克里里和弦。不必总是唱《Country Roads》或《Somewhere Over the Rainbow》。你可以输入任何冷门歌曲,应用依然能为其生成和弦。我想用一个AI代理来构建它,让它在互联网(主要是YouTube)上找到歌曲,并利用这些信息推断出和弦。这样,只要你搜索栏里输入的歌曲在网上存在,你就能找到它的和弦。
I sat down in front of my computer, opened Google AI Studio, and told it what I want. My wife wanted me to join the family for breakfast, but I kept saying, ‘One moment, please’, borrowing more time. By 8:30, I had not only developed the app, but I also deployed it, bought a domain, linked it to my app, and shared the link on a Reddit thread. 我坐在电脑前,打开Google AI Studio,告诉它我的需求。妻子叫我吃早饭,但我一直说“等一下”,不断争取时间。到了8点30分,我不仅开发好了应用,还完成了部署、购买域名、绑定应用,并将链接分享到了Reddit上。
I am a professional programmer. I’ve been coding for the last fifteen years of my life. Trust me, if I had to develop this all by myself, I’d have taken a good six months. But I pulled it in about an hour, even without writing a single line of code. Honestly, AI is amazing. 我是一名职业程序员,过去十五年一直在写代码。相信我,如果让我自己从头开发,至少需要六个月。但我只用了一个小时就搞定了,甚至没写一行代码。老实说,AI太神奇了。
Later that day, I checked my Reddit post. I got a fantastic response. One redditor even said, ‘Sounds like the uke app I have always wanted!’ I slept well that day, feeling that I finally built something the world wanted. The next morning, I checked the stats on Google Analytics. I’ve got around 200 people who tried my app. That’s great! I then checked the billing tab in my Google Cloud Console. That’s where I felt that what I built was a flop. I’ve spent $52 running the app just for a day. The AI agent is responsible for most of it. Every time a user visits the site, they might use this flashy feature to search for songs that they thought they would never find. And that shot the cost sky-high. 那天晚些时候,我查看了Reddit帖子,反响非常热烈。一位网友甚至说:“这听起来就是我一直想要的尤克里里应用!”那天我睡得很香,觉得终于做出了世界需要的东西。第二天早上,我查看了Google Analytics的数据,大约有200人试用了我的应用。太棒了!接着我查看了Google Cloud控制台的账单,那一刻我意识到我的作品是个失败品。仅仅运行了一天,我就花了52美元。大部分成本来自AI代理——每当用户访问网站,他们可能会使用这个炫酷的功能去搜索那些他们以为永远找不到的歌曲,这让成本飙升到了天价。
You could argue that’s normal for an app like this. I agree. But there was more than one reason to kill the app. A business that fails at a unit level doesn’t make money. Before this, I’ve run two blogs myself. I’ve monetized them with display ads and affiliate links. From that experience, I can say, in general, you can earn about $10-$20 from every 1000 visits to your site. If you’ve got something to sell, you could aim for $30-$50. That means my 200 visitors would have earned at most $4. But at what cost? $52! 你可能会说这对于此类应用很正常。我同意。但关掉这个应用的原因不止一个。在单位经济层面失败的生意是赚不到钱的。在此之前,我经营过两个博客,通过展示广告和联盟链接变现。根据经验,通常每1000次访问大约能赚10到20美元。如果你有产品销售,目标可能是30到50美元。这意味着我的200名访客最多只能赚4美元。但代价是什么?52美元!
Unit economics fail, and that doesn’t sound good to me. Even if I buy a company’s stock, I look at how much it makes from every sale. That’s something I learned from reading the works of the greatest investors the world has ever seen, like Peter Lynch and Warren Buffett. Some have said that the cost of building an app like this for 6 months would have been recouped. But mind that this $52 is the running cost of the app. Not the cost to develop it. I developed it for free. The Gemini free credits were sufficient for everything I wanted to do in this app. The running cost, however, would keep accumulating. Losing $48 ($52-$4) a day would end up losing $17k a year unless I find other upsell opportunities. 单位经济模型失败了,这对我来说不是好兆头。即使在买股票时,我也会关注每笔销售的利润率。这是我从彼得·林奇和沃伦·巴菲特等伟大投资者的著作中学到的。有人说,花6个月开发这种应用的成本是可以收回的。但请注意,这52美元是应用的运行成本,而不是开发成本。我是免费开发的,Gemini的免费额度足以支撑我想要实现的功能。然而,运行成本会不断累积。每天亏损48美元(52-4),一年下来就是1.7万美元,除非我能找到其他的增值机会。
What am I solving for? The ability to generate Ukulele chords for literally any song on the internet. Certainly, a lot of people would want this app. I figured it out from my own pain. I loved playing the ukulele, and as a beginner, I’d love to have something like this. AS A BEGINNER! But what will happen once I master it? I probably infer the chords myself from my experience. I don’t need an app to do that. That means the market I initially envisioned was even smaller. It’s not any ukulele player; it’s beginners who struggle to infer chords and coordinate singing and playing together. Pros don’t need this. 我到底在解决什么问题?为互联网上几乎任何歌曲生成尤克里里和弦的能力。当然,很多人会想要这个应用。我是从自己的痛点中发现的:我喜欢弹尤克里里,作为初学者,我非常想要这样的工具。是作为初学者!但一旦我精通了呢?我可能凭经验就能推断出和弦,不再需要应用。这意味着我最初设想的市场更小了。它不是面向所有尤克里里玩家,而是面向那些难以推断和弦、无法协调弹唱的初学者。专业人士根本不需要这个。
Okay, but what about those beginners? Will they not use it enough? They would. But beginners usually tend to play a dozen songs that are universally considered the ‘beginner-friendly ukulele songs.’ If it’s for my daughter, it’d be something like “Baa Baa Black Sheep” or “The Wheels on the Bus Go Round and Round.” For grown-ups, perhaps the same old “Country Roads.” Popular songs are sufficient for beginners. Pros know how to infer chords for other songs. But when I used AI to infer chords, I burned credits. Which is why the $52. It’s a costly whistle I hung on a genuinely helpful Christmas tree. The problem is real, but the solution is overkill. A bunch of statically generated pages would do the trick instead of a sophisticated AI agent. And that’s exactly what I have done now. If you visit ukuflow.com today, it’s a bunch of songs you can pick and play along to. Made for beginners, by a beginner. 好吧,那这些初学者呢?他们会频繁使用吗?会。但初学者通常倾向于弹奏那十几首公认的“尤克里里入门曲”。如果是给我女儿,那就是《Baa Baa Black Sheep》或《The Wheels on the Bus》。对于成年人,可能还是那首老掉牙的《Country Roads》。流行歌曲对初学者来说足够了,专业人士则知道如何推断其他歌曲的和弦。但我用AI去推断和弦时,消耗了大量额度,这就是52美元的由来。这就像是在一棵真正有用的圣诞树上挂了一个昂贵的哨子。问题是真实的,但解决方案用力过猛。用一堆静态生成的页面就能解决问题,根本不需要复杂的AI代理。这正是我现在所做的。如果你今天访问ukuflow.com,你会看到一堆可以挑选并跟弹的歌曲。由初学者为初学者打造。
Start small and iterate. As someone who worked on many SCRUM projects, I should have known this better. But I also think this is the smallest experiment I have run: failed with only a $52 bill, not $5k or $50k. I have also done the course correction of making the songs static instead. 从小处着手,不断迭代。作为一个参与过许多SCRUM项目的人,我本该更清楚这一点。但我认为这是我做过最小的一次实验:失败了也只付出了52美元的代价,而不是5000或5万美元。我也已经完成了纠偏,将歌曲改为了静态页面。