- Blog/
Vibecoding is the easy part
There is a specific kind of weekend that a lot of people had in the last two years.
You open a conversation with a frontier model on a Friday night with a half-formed idea. By Sunday evening you have a working product. A Chrome extension. A finance tracker. A tool that solves something you personally found annoying. The code is cleaner than you expected. The UI is sharper than it has any right to be. You feel like you have crossed some threshold.
I had several of those weekends. I built things I had no business shipping that fast. And for a while, that feeling of building felt like the point.
I have had a fair amount of coding experience over the years, but I had never once built a Mac application. Then one Sunday, messing around with Codex, I built a portfolio tracker from scratch. It works across currencies. It pulls from stock exchanges globally. It handles corporate actions. It is private, runs locally, and does exactly what I needed it to do. I was genuinely amazed. That Sunday changed something in how I think about what is possible.
Another weekend, I built a Firefox extension. It tracks which websites you visit, blocks the ones that pull your attention away, and keeps everything local — no API calls, no telemetry, nothing leaves the browser. The analytics surfaces which domains eat most of your time, broken down by category, across whatever window you want to look at: a day, a week, a month, up to a year. The blocking side has nuance to it. You can block any domain for a fixed window or indefinitely. Blocked pages show a countdown. If you genuinely need to get through, there is an exception mechanism — five per day per domain, each one granting a short timed window before the block returns. Over eighty domains come pre-categorised out of the box. Everything else falls back to keyword inference. It took a Sunday with Claude Code and it does exactly what no existing extension did in quite the way I wanted. Clauding Sundays hit different.
And that is exactly the use case where vibecoding is extraordinary. Building for yourself. Scratching your own itch. Creating personal software that fits your life precisely, without compromise, without a subscription, without trusting some SaaS company with your financial data. For this, the tools are nothing short of remarkable and I am completely all in.
It is not the point.
Here is what nobody tells you clearly enough going in: the bottleneck in software was never writing code. It was finding people who needed the thing, convincing them to try it, and giving them enough reason to come back. That bottleneck did not move. Vibecoding routed around the wrong obstacle entirely.
The moment you decide to market your product, something fundamental shifts. You are no longer building a product. You are building a business. And that is a completely different game with completely different rules. One that AI cannot shortcut for you. Distribution, positioning, trust, retention — none of that ships over a weekend.
And the second problem is worse. The frontier labs are building the same things you are, just with more compute, more distribution, and a built-in user base of millions. You spend a weekend on a markdown editor. OpenAI ships it as a feature update. You build a grammar tool. It becomes a toggle inside an existing product someone already has open. By the time you are thinking about your first hundred users, the thing you built has already been absorbed into something bigger.
Their feature is your product.
I am not saying do not build. The tools are genuinely extraordinary and the learning is real. But there is a difference between building to learn and building under the assumption that the product itself is the hard part.
The hard part is the same as it always was. Distribution. Trust. Accumulated data that nobody else has. A workflow so embedded that switching feels painful. Those things take longer than a weekend. They always did.
Vibecoding collapsed the cost of starting. It did not change what it takes to matter.