I've used AI for building a hobbyist note app myself. It's also a mixed bag but a lot of that comes down to how I've changed.
Before AI dev was expensive so I'd spend hours planning features. I filled 5 notebooks with UI sketches and data schemas and lists of names of what to call things. Building was more or less final as I only had 5-10 hrs a week max and wanted to move on.
Now I type directly into the Claude Code chat box and it writes it in front of me. I haven't planned a thing in months. As a result the app swings wildly around based on my whims and feelings. I can rewrite the whole thing based on something I thought of in the shower. Then days later I realize it isn't right and I rebuild it again. All of the rewrites have done a number on the code and I see dead patterns everywhere from stuff long since deleted.
In a professional app I'd have others to hold me accountable so it's not exactly the same but AI has made it very easy to make a lot of bad apps quickly. If you know exactly what you want though it can feel like magic.
I just hope it's still respecting the data loading and caching algorithms I designed so carefully cause I wouldn't know if it wasn't anymore.
I have noticed the exact behavior change on myself that you describe.
But, thanks to the magic of keeping track of time and tasks, I have discovered:
- I am not all that faster when project timelines are concerned
- I've often built things with AI with the latest and greatest technologies that I've always wanted to learn but never did, like write a microservice backend with the trendiest frameworks with infrastructure as code and all the bells and whistles, while previously I was content with a server executable sitting on disk (maybe in a container), writing to a sqlite db file next to it.
- The new tech has serious performance DX/UX and cost issues. While previously deployment was just a copy, now I have to wait for terraform to churn through the monstrosity I made with AI. Debugging is hard.
- There's no prestige in building with fancy tech. AI can build using microservice orchestration. It can build using a simple CRUD blob as well. You just have to ask it. A lot of appeal of said fancy tech lay in prestige, newness, and exclusivity, and it sucks in very tangible ways.
- I used to be much more awesome than I gave myself credit for. Looking back at my old code, the amount of highly dense and quality code I cranked out during my productive periods was way more than I though, and you could feel it was thought through. Rather than doing the feature sloppily then fixing the 5 corner cases, like AI does, I carefully considered execution flow and made sure the simple looking code actually did everything correctly. This meant that it had a ton of missing mental context that I couldn't replicate just by looking at it after a long while, and touching the code without rebuilding it was a futile exercise.
- I fooled myself into thinking I understood what AI was doing, but in reality, I was far less aware than I expected and needed to be
> I carefully considered execution flow and made sure the simple looking code actually did everything correctly
That is what I love about coding. Not just insofar as it's necessary and useful (it is both), but just as a puzzle in its own right, to a fault. It's just a type of "imagination" that I don't really apply often otherwise, since e.g. I'm not into math, not an organizer or manager etc. Though I did have jobs where I instantly saw ways to optimise some things I do credit to having practised with code. You just try to think through what will happen given the known landscape and the given decided plan, what could happen given the known unknowns, how your heuristics would deal with that, and unless it's all green you see if you can change the landscape, the plan, explore some unknowns, and/or improve your heuristics (by which I just mean what you use to make ad-hoc decisions when things don't go according to plan). That kind of becomes a habit which can get applied to and improve lots of things. Measure twice, cut once, so I don't have to spend three days because of a stray comma (again).
> AI has made it very easy to make a lot of bad apps quickly
Is it bad from a user or performance perspective, or just untidy and unaesthetic from a developer’s perspective? Because the developer’s perspective is becoming increasingly unimportant as LLMs become the main readers and writers of the code.
Code that is untidy and unaesthetic from a developer’s perspective is also likely to be confusing to a user and perform or scale poorly, in my experience at least.
I think these are separate things. I get the heuristic you’re applying, but with rigorous testing code quality doesn’t matter the same way anymore. Indeed, what is quality?
I don’t think any of what you just said is true. Code quality matters even with testing even up to proof of correctness using formal methods, because working software is a moving target and quality is a measure of how easy / expensive it is to continue to track that target going forward.
Depends on how it manifests. If things change every app release sometimes for better sometimes for worse and nothing really stays consistent over time it is clearly bad for user.
Users really like stability of their experience. They want the things that are working to keep working. If something is bit weird but acceptable they expect it to continue like that. Going back and forth between things might be the worst. After bad bugs like data being lost or thing not working at all.
For sure, but I think solid automated testing is what gets you to a good and consistent user experience. Validation of the outcome rather than the code itself.
At least some of it (not all of it) will leak from devs pain to users pain... Untidy unaesthetic unreviewed code will sooner or later introduce inconsistencies, poor performance, and bugs, and as you get more of it, the harder it is to clean up properly and get things under control.
I mean that it's allowed more bad apps to be created. It hasn't lowered the quality of apps necessarily but the low barrier to entry means things can be created that don't need to exist
> developer’s perspective is becoming increasingly unimportant as LLMs become the main readers and writers of the code.
Until the LLM itself becomes confused by the 10 layers of old patterns that weren't fully deleted from the code base, 5 of which do more or less the same thing but in minutely different ways that cause issues.
I don’t think you shouldn’t go and clean up dead code and ensure that you have code reuse, as it probably does help the LLM somewhat. I just don’t think that it needs to be as strict as we’re used to for human consumption. And the LLMs will get better at both reading such messy codebases and not making a mess as time goes on. Assuming of course, that not making a mess even helps.
Both. I debugged an issue a few days ago where a messy, incomplete migration was causing every agent that drove by to very confidently assert the wrong behavior and try to make breaking changes.
I've been searching for the perfect notes app my whole life, and have been contemplating just building it myself now. I'd love if you could link me to your github and share it.
I think we are moving from "can you build this product?" to "do i trust you to support this product?". Software is cheap, trust is a premium.
Developers and companies who put real care into their product will come out on top. A large part of that is going to be, what not to build - something AI agents will always say yes to.
To be fair, was always the case but its only going to be made more apparent as AI scales out.
I will say, when working with the recent batch of frontier models, even the last batch, if you ask "Do you think we should xyz" it may sometimes push back for an alternate solution.
Now, I can't promise it's advice is worth taking, but they do seem to be taking strides at judging the relevancy of some needless additions.
I agree with your observation. Although the framing of the question signals some of the response "Do you think.. " forces the model to check for the cost-benefits.
We can definitely mould AI agents to think more critically about these things, I dont know how effective it will be in the long term honestly.
Recommend checking out Ponytail — a pi extension that behaves like a senior engineer who keeps the LLM code generation in check, and the processing of your prompts just the same
What are the actual maintenance items you will run into for offline utilities if the initial version has been throughly tested and works exactly how you want it?
Is it typically bug hunting on edge cases? Feature requests? If the initial product is polished enough, what can I realistically expect to run into down the line?
The OS changes all the time, Apple/Google stop supporting an API your app relied on, security vulnerabilities get published, even stupid stuff like timezone changes can break a perfect app in strange ways.
I think the author arrived at the sort of bad middle trench of AI: where you use it knowing how the code works and trying to fit it into a paradigm (Xcode) that it’s not well-suited for.
The 6 months of cleanup is something a true no-code vibe coder would have never done. I also think that kind of person might be inclined to keep AI going down the simplest development lane possible, which probably means using a more web-native technology rather than a native app that relies on an IDE the AI can’t work well with.
Something like Expo, for example.
I found that the most time consuming part of iOS app development in a vibe coder scenario was the various “red tape” of the process for the App Store including submission.
I've spent a lot of time in my career as a SRE/DevOps which includes running MANY outages due to a combination of uncaught bugs and/or crazy infra failures. [0]
In my opinion, the basics of software engineering haven't changed, it's just faster to write the code.
e.g. the below plan is just applicable for humans or LLMs when building systems that are sensitive to small changes/errors and have catastrophic failure modes. (e.g. trading, avionics, health etc)
1. Have a very detailed plan of how you want it to work
2. Break the work into components
3. Work on each component and test the component extensively
4. Once that component is good, move on to the next component
5. Tie all those components together and confirm they work via integration tests etc
There is a STRONG temptation to just tell the LLM "Build me a system" but that is a bad idea and was also a bad idea with humans.
Sure, LLMs speed up #2 and possibly #3. For #3 specifically, almost all of the top developers I know are using LLMs to write the code but are writing the tests by hand or spending most of the time reviewing the test code written by LLMs. I would argue that this is how it should be.
Making production software is still hard. You still need to know what you're doing. Making good software still requires significant investment of time and intelligence.
Using LLM tools can greatly accelerate development when used effectively, it can enable much smaller high performing teams to be much more effective. But it's not magic and if you're holding it wrong it really can be a hindrance rather than a benefit.
> There is an option to buy a lifetime licence but it costs a whopping £44.99.
I've given up trusting lifetime anything from the app stores now.
Mobile OSs seem to evolve so much faster, add new layers of security, lock pro features behind app store billing APIs that require the developer's account remains in good standing.
I've been burnt by three apps cutting and running now. One where the developers got their prize jobs at Microsoft and AWS [1], another where they sold the app off to another company that gave up maintaining it [2] and finally EA (enough said) [3]
My weightlifting app sold me a pro unlock to get weight calcualors years ago. Then they introduced a subscription model to get that plus some features I didn't want, they promised my purchase would be respected for all time.
Last September they declared that the app was "too valuable to give away for free" and told me I had to subscribe to use it. Even though it hadn't been free, I'd paid for it, and nothing about it had changed in the decade since I paid for it. Everything else was already locked behind a subscription I didn't find value in.
Seems like a lot of companies these days think "lifetime" means "until we really really want more money"
Simple hack for yourself: Simply disbelieve all "lifetime" claims, presumptively. I do.
Also, the more and more every {expletive deleted} app thinks that the simple features are worth a $14.99/month subscription, the more sense going to open source makes. Yeah, it can be a bit annoying. But "a bit annoying" starts winning out over "a cumulative $200/month set of subscriptions" eventually.
To add another datapoint: My weightlifting app used to be a one-time purchase a few years ago and have since switched to subscriptions. As a result I have received a lifetime pro license. They’re still selling lifetime licenses for almost a hundred dollars (yearly subscription is ~$30). I still have access to every pro feature. Not bad for a $5 I got ten years ago
That is rough. I assume this is a web application?
I went through a previous thought experiment about what would happen when we moved a paid up front feature behind a subscription. This was the outcome I came to. Unless the user bought and installed a physical app, on the desktop, outside of an app store, they were going to get the rug pulled out from under them.
This is how I hope the world will continue to be, because then programming, which is one of the most enjoyable things ever, may remain a human task, assisted by AI and other tools.
Yes! There are a lot of people over using AI right now and a lot of people abstaining, but ultimately I think the development process described in the post will be where we settle. I was told at work that we should adopt AI faster because "we're falling behind" and I tried to explain that the speed of light has not changed. It's our human ability to understand the code and our ability to make decisions about what to do next. AI can only speed up parts of it.
So, how much was hand-written after the initial 6 hours? It sounds like quite a bit. My experience has been very different. I haven't gotten to the point of releasing anything from AI yet, but I'll spend a weekend throwing prompts, then I'll have an application that does the thing that I asked it to do. I'll use the application over the next week or so keeping a task list of things that I'd want to tweak, bugs, or features that are missing, then I share that document with the AI and tell it to clear the list. If I'm building something with AI, I really don't touch the code. If there is a bad pattern the code, I flag it in my task list and tell the AI to fix it.
Yeah, I think not manually fixing issues, but telling the LLM to fix them and update its own documentation to reflect the fix, is a somewhat unpleasant but necessary approach. Otherwise, the LLM is just going to make the same mistake again elsewhere, or randomly revert your change, or get confused.
If I were building a habit tracking app for iOS I wouldn't start from scratch. Even if I had a completely new take on the UI, I would try to reuse or adapt a data model from an existing app.
The easiest way to do that would be to clone the repo for the open source Loop habit tracker: https://github.com/iSoron/uhabits and then ask Claude Code to study the data model and API, and help me think through what I need to add/change to support the features I want.
Once the data model is in great shape, then let the AI go and build, test, iterate etc.
I made a simple app to solve a local/personal problem for people in my area. Keeping it focused made it fairly easy to get it built. I spent more time on the marketing website and images than I did building the actual app haha.
Developing an app involves in many details, and AI cannot solve or think about all of them, many details will use default values, make up some values, or just left blank.
The details are important. You shape the details, and the details shape you in turn as well.
Were you using exclusively free plans to build your app?
I didn't find app building to take that long, even without knowing the ins and outs of kotlin and swift.
I did find the process of publishing the app to be one of the hardest things. The last 10 - 20 percent of app development still requires a lot of paperwork of you aren't already a developer.
It's not apparent if these were exclusively free LLMs though. I still don't quite understand the time scale unless the author didnt pay...which would be really impressive
I don't think any app should be built like this. Rather, I think this approach should be used when you already have a large codebase and are making atomic changes to it. In fact, I think taking this approach for greenfield work is more likely to result in slop because early accidental decisions turn into fundamental design choices.
Instead, I've settled on a top-down approach: I write an in-depth spec for the whole app first, then have the LLM implement reviewable sections of it.
> Spending your time cleaning up AI slop that you didn't want to write in the first place doesn't sound like much fun.
Pretty much every job I've had since 2003 involved cleaning up human-written slop.
For the moment, I'm finding that AI speeds up certain things: It can bang out unit tests in a few minutes, or do 80% of the work for me; but once it gets to the "test, make small change, test" loop, that's all done by hand.
Human written slop is SIGNIFICANTLY more enjoyable than LLM slop, it tells a story no matter how bad the dev is. LLM slop is a tidal wave of meaningless drivel.
> This was just before Claude Code was released so this wasn't full agentic hands-off engineering. Instead, I broke down the development into lots of small tasks and went through them manually with the AI, testing each change as I went along
Is there really much use in deconstructing a vibe coding process that was used before the term "vibe coding" existed? It's like critiquing a caveman's fire-starting routine.
> Meanwhile, the senior developers are in 2 camps. One half are using AI for absolutely everything but are slowly losing their ability to code. The other half are so sick of AI and are getting burnt out having to write prompts every day that they just don't want to do it anymore.
Again, this sounds like what developers were saying about AI a year ago. The refrain from the development world hasn't sounded like that for a while.
I am not exactly sure, but my gut feeling is that Cursor existed before Claude Code was released, and the term vibe coding existed already at that time.
EDIT: Okay, Andrej tweeted about Vibe Coding on February 3rd 2025, and Claude Code was released in the same month. But Cursor was already there (I can see usage starting January 2025 in my account and know that it took me a few weeks before I tried it).
> If the AI bubble does ever pop, I am not sure there is going to be enough competent developers left who are willing to pick up the pieces.
There is so much confusion around "the AI bubble". I am sure a lot of things will deflate, fail, people will go out of business, model development might slow, people might lose money on hopeful 1000x investments – but not because from here on out we suddenly notice that AI capability was all just illusionary and we will not want it anymore.
In terms of capabilities, at the very least, what we now have will be here, forever. LLMs will be here, and they will be used, until something better comes along.
I tried building a real app with AI. It took a week or two.
The problem lies in convincing other people to use it. So far I am the only user.
And, this is not a new experience. I have a utility to change the gamma ramp in a GPU, for windows, that still works in Windows 98, XP, 10, and 11, even Linux and X Window with Wine, and so far I am the only user.
I wrote it because I had an old CRT that was too dark and unusable with the default gamma.
So now everyone can do these one-user apps. Welcome to my world :)
The authors experience is not mine. I have an app/website combo deployed that is getting 60+ visitors a day and the app is getting downloaded weekly. Both are growing. All "vibe" coded.
Now I have 20 YOE in software too before the booon of AI.
I've used AI for building a hobbyist note app myself. It's also a mixed bag but a lot of that comes down to how I've changed.
Before AI dev was expensive so I'd spend hours planning features. I filled 5 notebooks with UI sketches and data schemas and lists of names of what to call things. Building was more or less final as I only had 5-10 hrs a week max and wanted to move on.
Now I type directly into the Claude Code chat box and it writes it in front of me. I haven't planned a thing in months. As a result the app swings wildly around based on my whims and feelings. I can rewrite the whole thing based on something I thought of in the shower. Then days later I realize it isn't right and I rebuild it again. All of the rewrites have done a number on the code and I see dead patterns everywhere from stuff long since deleted.
In a professional app I'd have others to hold me accountable so it's not exactly the same but AI has made it very easy to make a lot of bad apps quickly. If you know exactly what you want though it can feel like magic.
I just hope it's still respecting the data loading and caching algorithms I designed so carefully cause I wouldn't know if it wasn't anymore.
I have noticed the exact behavior change on myself that you describe.
But, thanks to the magic of keeping track of time and tasks, I have discovered:
- I am not all that faster when project timelines are concerned
- I've often built things with AI with the latest and greatest technologies that I've always wanted to learn but never did, like write a microservice backend with the trendiest frameworks with infrastructure as code and all the bells and whistles, while previously I was content with a server executable sitting on disk (maybe in a container), writing to a sqlite db file next to it.
- The new tech has serious performance DX/UX and cost issues. While previously deployment was just a copy, now I have to wait for terraform to churn through the monstrosity I made with AI. Debugging is hard.
- There's no prestige in building with fancy tech. AI can build using microservice orchestration. It can build using a simple CRUD blob as well. You just have to ask it. A lot of appeal of said fancy tech lay in prestige, newness, and exclusivity, and it sucks in very tangible ways.
- I used to be much more awesome than I gave myself credit for. Looking back at my old code, the amount of highly dense and quality code I cranked out during my productive periods was way more than I though, and you could feel it was thought through. Rather than doing the feature sloppily then fixing the 5 corner cases, like AI does, I carefully considered execution flow and made sure the simple looking code actually did everything correctly. This meant that it had a ton of missing mental context that I couldn't replicate just by looking at it after a long while, and touching the code without rebuilding it was a futile exercise.
- I fooled myself into thinking I understood what AI was doing, but in reality, I was far less aware than I expected and needed to be
> I carefully considered execution flow and made sure the simple looking code actually did everything correctly
That is what I love about coding. Not just insofar as it's necessary and useful (it is both), but just as a puzzle in its own right, to a fault. It's just a type of "imagination" that I don't really apply often otherwise, since e.g. I'm not into math, not an organizer or manager etc. Though I did have jobs where I instantly saw ways to optimise some things I do credit to having practised with code. You just try to think through what will happen given the known landscape and the given decided plan, what could happen given the known unknowns, how your heuristics would deal with that, and unless it's all green you see if you can change the landscape, the plan, explore some unknowns, and/or improve your heuristics (by which I just mean what you use to make ad-hoc decisions when things don't go according to plan). That kind of becomes a habit which can get applied to and improve lots of things. Measure twice, cut once, so I don't have to spend three days because of a stray comma (again).
omfg all those days and money lost to a single character.
> AI has made it very easy to make a lot of bad apps quickly
Is it bad from a user or performance perspective, or just untidy and unaesthetic from a developer’s perspective? Because the developer’s perspective is becoming increasingly unimportant as LLMs become the main readers and writers of the code.
Code that is untidy and unaesthetic from a developer’s perspective is also likely to be confusing to a user and perform or scale poorly, in my experience at least.
I think these are separate things. I get the heuristic you’re applying, but with rigorous testing code quality doesn’t matter the same way anymore. Indeed, what is quality?
I don’t think any of what you just said is true. Code quality matters even with testing even up to proof of correctness using formal methods, because working software is a moving target and quality is a measure of how easy / expensive it is to continue to track that target going forward.
Well, shrug I guess? You’re welcome to your opinion, we both think the other is wrong.
Depends on how it manifests. If things change every app release sometimes for better sometimes for worse and nothing really stays consistent over time it is clearly bad for user.
Users really like stability of their experience. They want the things that are working to keep working. If something is bit weird but acceptable they expect it to continue like that. Going back and forth between things might be the worst. After bad bugs like data being lost or thing not working at all.
For sure, but I think solid automated testing is what gets you to a good and consistent user experience. Validation of the outcome rather than the code itself.
At least some of it (not all of it) will leak from devs pain to users pain... Untidy unaesthetic unreviewed code will sooner or later introduce inconsistencies, poor performance, and bugs, and as you get more of it, the harder it is to clean up properly and get things under control.
I mean that it's allowed more bad apps to be created. It hasn't lowered the quality of apps necessarily but the low barrier to entry means things can be created that don't need to exist
Ah, I see! Fair point.
> developer’s perspective is becoming increasingly unimportant as LLMs become the main readers and writers of the code.
Until the LLM itself becomes confused by the 10 layers of old patterns that weren't fully deleted from the code base, 5 of which do more or less the same thing but in minutely different ways that cause issues.
I don’t think you shouldn’t go and clean up dead code and ensure that you have code reuse, as it probably does help the LLM somewhat. I just don’t think that it needs to be as strict as we’re used to for human consumption. And the LLMs will get better at both reading such messy codebases and not making a mess as time goes on. Assuming of course, that not making a mess even helps.
Both. I debugged an issue a few days ago where a messy, incomplete migration was causing every agent that drove by to very confidently assert the wrong behavior and try to make breaking changes.
I've been searching for the perfect notes app my whole life, and have been contemplating just building it myself now. I'd love if you could link me to your github and share it.
I think we are moving from "can you build this product?" to "do i trust you to support this product?". Software is cheap, trust is a premium.
Developers and companies who put real care into their product will come out on top. A large part of that is going to be, what not to build - something AI agents will always say yes to.
To be fair, was always the case but its only going to be made more apparent as AI scales out.
> "do i trust you to support this product?"
Excellent case for open source local software.
I will say, when working with the recent batch of frontier models, even the last batch, if you ask "Do you think we should xyz" it may sometimes push back for an alternate solution.
Now, I can't promise it's advice is worth taking, but they do seem to be taking strides at judging the relevancy of some needless additions.
I agree with your observation. Although the framing of the question signals some of the response "Do you think.. " forces the model to check for the cost-benefits.
We can definitely mould AI agents to think more critically about these things, I dont know how effective it will be in the long term honestly.
Recommend checking out Ponytail — a pi extension that behaves like a senior engineer who keeps the LLM code generation in check, and the processing of your prompts just the same
https://ponytail.dev
What are the actual maintenance items you will run into for offline utilities if the initial version has been throughly tested and works exactly how you want it?
Is it typically bug hunting on edge cases? Feature requests? If the initial product is polished enough, what can I realistically expect to run into down the line?
The OS changes all the time, Apple/Google stop supporting an API your app relied on, security vulnerabilities get published, even stupid stuff like timezone changes can break a perfect app in strange ways.
Besides that, security cipher updates, internet protocol updates, there are a myriad ways applications that stand still can break.
Software will never be truly stable as long as their environment (the world, ultimately) is not stable
I think the author arrived at the sort of bad middle trench of AI: where you use it knowing how the code works and trying to fit it into a paradigm (Xcode) that it’s not well-suited for.
The 6 months of cleanup is something a true no-code vibe coder would have never done. I also think that kind of person might be inclined to keep AI going down the simplest development lane possible, which probably means using a more web-native technology rather than a native app that relies on an IDE the AI can’t work well with.
Something like Expo, for example.
I found that the most time consuming part of iOS app development in a vibe coder scenario was the various “red tape” of the process for the App Store including submission.
I've spent a lot of time in my career as a SRE/DevOps which includes running MANY outages due to a combination of uncaught bugs and/or crazy infra failures. [0]
In my opinion, the basics of software engineering haven't changed, it's just faster to write the code.
e.g. the below plan is just applicable for humans or LLMs when building systems that are sensitive to small changes/errors and have catastrophic failure modes. (e.g. trading, avionics, health etc)
1. Have a very detailed plan of how you want it to work
2. Break the work into components
3. Work on each component and test the component extensively
4. Once that component is good, move on to the next component
5. Tie all those components together and confirm they work via integration tests etc
There is a STRONG temptation to just tell the LLM "Build me a system" but that is a bad idea and was also a bad idea with humans.
Sure, LLMs speed up #2 and possibly #3. For #3 specifically, almost all of the top developers I know are using LLMs to write the code but are writing the tests by hand or spending most of the time reviewing the test code written by LLMs. I would argue that this is how it should be.
0 - https://x.com/alexpotato/status/1215876962809339904
Making production software is still hard. You still need to know what you're doing. Making good software still requires significant investment of time and intelligence.
Using LLM tools can greatly accelerate development when used effectively, it can enable much smaller high performing teams to be much more effective. But it's not magic and if you're holding it wrong it really can be a hindrance rather than a benefit.
Powertools without safety features, basically.
> There is an option to buy a lifetime licence but it costs a whopping £44.99.
I've given up trusting lifetime anything from the app stores now.
Mobile OSs seem to evolve so much faster, add new layers of security, lock pro features behind app store billing APIs that require the developer's account remains in good standing.
I've been burnt by three apps cutting and running now. One where the developers got their prize jobs at Microsoft and AWS [1], another where they sold the app off to another company that gave up maintaining it [2] and finally EA (enough said) [3]
[1]: https://news.ycombinator.com/item?id=46768909
[2]: https://www.androidpolice.com/2018/04/16/beyondpods-first-pu...
[3]: https://web.archive.org/web/20190116224256/https://answers.e...
My weightlifting app sold me a pro unlock to get weight calcualors years ago. Then they introduced a subscription model to get that plus some features I didn't want, they promised my purchase would be respected for all time.
Last September they declared that the app was "too valuable to give away for free" and told me I had to subscribe to use it. Even though it hadn't been free, I'd paid for it, and nothing about it had changed in the decade since I paid for it. Everything else was already locked behind a subscription I didn't find value in.
Seems like a lot of companies these days think "lifetime" means "until we really really want more money"
Simple hack for yourself: Simply disbelieve all "lifetime" claims, presumptively. I do.
Also, the more and more every {expletive deleted} app thinks that the simple features are worth a $14.99/month subscription, the more sense going to open source makes. Yeah, it can be a bit annoying. But "a bit annoying" starts winning out over "a cumulative $200/month set of subscriptions" eventually.
To add another datapoint: My weightlifting app used to be a one-time purchase a few years ago and have since switched to subscriptions. As a result I have received a lifetime pro license. They’re still selling lifetime licenses for almost a hundred dollars (yearly subscription is ~$30). I still have access to every pro feature. Not bad for a $5 I got ten years ago
That is rough. I assume this is a web application?
I went through a previous thought experiment about what would happen when we moved a paid up front feature behind a subscription. This was the outcome I came to. Unless the user bought and installed a physical app, on the desktop, outside of an app store, they were going to get the rug pulled out from under them.
No, its the stronglifts app. But I switched to hevy and I'm happy with it. But I did paper for a while and liked it until I missed mu graphs
This is how I hope the world will continue to be, because then programming, which is one of the most enjoyable things ever, may remain a human task, assisted by AI and other tools.
Yes! There are a lot of people over using AI right now and a lot of people abstaining, but ultimately I think the development process described in the post will be where we settle. I was told at work that we should adopt AI faster because "we're falling behind" and I tried to explain that the speed of light has not changed. It's our human ability to understand the code and our ability to make decisions about what to do next. AI can only speed up parts of it.
So, how much was hand-written after the initial 6 hours? It sounds like quite a bit. My experience has been very different. I haven't gotten to the point of releasing anything from AI yet, but I'll spend a weekend throwing prompts, then I'll have an application that does the thing that I asked it to do. I'll use the application over the next week or so keeping a task list of things that I'd want to tweak, bugs, or features that are missing, then I share that document with the AI and tell it to clear the list. If I'm building something with AI, I really don't touch the code. If there is a bad pattern the code, I flag it in my task list and tell the AI to fix it.
Yeah, I think not manually fixing issues, but telling the LLM to fix them and update its own documentation to reflect the fix, is a somewhat unpleasant but necessary approach. Otherwise, the LLM is just going to make the same mistake again elsewhere, or randomly revert your change, or get confused.
If I were building a habit tracking app for iOS I wouldn't start from scratch. Even if I had a completely new take on the UI, I would try to reuse or adapt a data model from an existing app.
The easiest way to do that would be to clone the repo for the open source Loop habit tracker: https://github.com/iSoron/uhabits and then ask Claude Code to study the data model and API, and help me think through what I need to add/change to support the features I want.
Once the data model is in great shape, then let the AI go and build, test, iterate etc.
If there is "NO AI" certification, people will always choose such products.
"always" is a bit strong here.
I made a simple app to solve a local/personal problem for people in my area. Keeping it focused made it fairly easy to get it built. I spent more time on the marketing website and images than I did building the actual app haha.
Developing an app involves in many details, and AI cannot solve or think about all of them, many details will use default values, make up some values, or just left blank.
The details are important. You shape the details, and the details shape you in turn as well.
Were you using exclusively free plans to build your app?
I didn't find app building to take that long, even without knowing the ins and outs of kotlin and swift.
I did find the process of publishing the app to be one of the hardest things. The last 10 - 20 percent of app development still requires a lot of paperwork of you aren't already a developer.
If you read the article, you'll see that the author took the same approach one would use when writing an app manually from scratch:
> I started with a simple hello world application. Then added in the habit list, the ability to add a habit, edit a habit and so on.
This hands-on, incremental approach works, of course. But I don't think it is the most effective way of using LLMs to write apps.
It's not apparent if these were exclusively free LLMs though. I still don't quite understand the time scale unless the author didnt pay...which would be really impressive
> This hands-on, incremental approach works, of course. But I don't think it is the most effective way of using LLMs to write apps.
1. Which apps should be built like this?
2. Which apps shouldn't be built like this?
My instinct is that any app worth building and using for a long time should be built incrementally. Otherwise, slop.
I don't think any app should be built like this. Rather, I think this approach should be used when you already have a large codebase and are making atomic changes to it. In fact, I think taking this approach for greenfield work is more likely to result in slop because early accidental decisions turn into fundamental design choices.
Instead, I've settled on a top-down approach: I write an in-depth spec for the whole app first, then have the LLM implement reviewable sections of it.
Most apps, just like most buildings, aren't greenfield, though :-)
Yep. AI will speed you up a bit, but it's no panacea.
> Spending your time cleaning up AI slop that you didn't want to write in the first place doesn't sound like much fun.
Pretty much every job I've had since 2003 involved cleaning up human-written slop.
For the moment, I'm finding that AI speeds up certain things: It can bang out unit tests in a few minutes, or do 80% of the work for me; but once it gets to the "test, make small change, test" loop, that's all done by hand.
Human written slop is SIGNIFICANTLY more enjoyable than LLM slop, it tells a story no matter how bad the dev is. LLM slop is a tidal wave of meaningless drivel.
llms write bad core data sync code by default, so that icloud bug tracks. merge policies and conflict resolution i still end up doing by hand
> This was just before Claude Code was released so this wasn't full agentic hands-off engineering. Instead, I broke down the development into lots of small tasks and went through them manually with the AI, testing each change as I went along
Is there really much use in deconstructing a vibe coding process that was used before the term "vibe coding" existed? It's like critiquing a caveman's fire-starting routine.
> Meanwhile, the senior developers are in 2 camps. One half are using AI for absolutely everything but are slowly losing their ability to code. The other half are so sick of AI and are getting burnt out having to write prompts every day that they just don't want to do it anymore.
Again, this sounds like what developers were saying about AI a year ago. The refrain from the development world hasn't sounded like that for a while.
I am not exactly sure, but my gut feeling is that Cursor existed before Claude Code was released, and the term vibe coding existed already at that time.
EDIT: Okay, Andrej tweeted about Vibe Coding on February 3rd 2025, and Claude Code was released in the same month. But Cursor was already there (I can see usage starting January 2025 in my account and know that it took me a few weeks before I tried it).
People were using the word "vibe" to describe this process as early as 2023:
https://simonwillison.net/2023/Dec/31/ai-in-2023/
Here it's called "Vibes Based Development"
> If the AI bubble does ever pop, I am not sure there is going to be enough competent developers left who are willing to pick up the pieces.
There is so much confusion around "the AI bubble". I am sure a lot of things will deflate, fail, people will go out of business, model development might slow, people might lose money on hopeful 1000x investments – but not because from here on out we suddenly notice that AI capability was all just illusionary and we will not want it anymore.
In terms of capabilities, at the very least, what we now have will be here, forever. LLMs will be here, and they will be used, until something better comes along.
If you started to build an app today, it would take a month. Models and infrastructure are very different now.
I tried building a real app with AI. It took a week or two.
The problem lies in convincing other people to use it. So far I am the only user.
And, this is not a new experience. I have a utility to change the gamma ramp in a GPU, for windows, that still works in Windows 98, XP, 10, and 11, even Linux and X Window with Wine, and so far I am the only user.
I wrote it because I had an old CRT that was too dark and unusable with the default gamma.
So now everyone can do these one-user apps. Welcome to my world :)
Obligatory “it’s Xcode with a lowercase c” comment. I know, not very interesting but it drives me mad…
The authors experience is not mine. I have an app/website combo deployed that is getting 60+ visitors a day and the app is getting downloaded weekly. Both are growing. All "vibe" coded.
Now I have 20 YOE in software too before the booon of AI.
same here. Did a timeslot management app for beauty salons etc. Tons of features, never once looked at source or even database (C#+pgsql)
The hard part were actually the sales but I'm getting quite some, going physically(!) to places.
Hosting costs $50, revenue is ~1k/month, nothing special but its basically on autopilot.
I did have the app for 6 months for free on a first client where they would give me feedback bugs etc until i felt it was stable.
I don't even have a pricing page, i try to see how much i get can from each client, from $5/mo to $100/mo
> I don't even have a pricing page, i try to see how much i get can from each client, from $5/mo to $100/mo
That seems ethical. Vibes based fees.
Pretty sure I could bang this out in a day now w/ Claude/Codex.