Title: How I made a paid Mac app in 11 days with Caude – without writing a single line of code
URL Source: https://www.zdnet.com/innovation/claude-code-vibe-coding-mac-app/
Published Time: 2026-10-05T08:03:03-04:00
Markdown Content:
ZDNET’s key takeaways
• I shipped a Mac app without writing a single line of code.
• Vibe coding took 502 directives, not one magic prompt.
• App Store promo images took almost as long as the app.
• * *
At around noon on Sunday, Sept. 20, I came up with an idea for a Mac app. One week later, on Sunday, Sept. 27, also around noon, I submitted my completed app to Apple. Four days later, Apple accepted the tool, and [it went live on the App Store](https://cc.zdnet.com/v1/otc/00hQi47eqnEWQ6T9d4QLBUc?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ficon-gallery-97%2Fid6815353426&u=https%3A%2F%2Fwww.zdnet.com%2Finnovation%2Fclaude-code-vibe-coding-mac-app%2F).
**Also: [AI completely changed how I develop iPhone apps … and I think I love it](https://www.zdnet.com/tech/apple-a-day-ai-agentic-coding-iphone-ios-mac-apps/)**
This is the story of an unrelated assignment by a ZDNET editor, a happy accident, and vibe coding at its best. It began 30 years ago, with a giant library of icons.
More from ZDNET
Icons were good to me
When I started my first software company, one of the first products I introduced was Icon Factory for HyperCard. It won several awards. This product supported my company and our employees for years. Those icons were all black and white, as was HyperCard.
**Also:[After the vibe-coding rush comes the debugging hangover](https://www.zdnet.com/innovation/vibe-codings-intoxicating-magical-rush-hides-the-real-work-nobody-talks-about/)**
In 1997, after years of customer requests for colorful Finder desktop icons, we created a three-volume set of 32×32 pixel color icons called Icon Gallery. This was a boxed product of more than 2,000 icons. Icon Gallery sold through retail, mail order distribution, and direct mail.

Icon Gallery original box, compared with the app I just built and published.David Gewirtz/ZDNET
Icon Gallery was one of the last boxed software products I produced. I’ll be honest with you. I can’t recall when or why I stopped selling Icon Gallery, but it probably tracked with when I stopped physically manufacturing boxed products. That decision, of course, tracked with the rise of the web.
Now, let’s fast forward to a few months ago. While decluttering some cubbies in my office, I found the packaging for a couple of my old software products, including Icon Gallery. I stuck the box on a shelf. Once again, I pretty much forgot about it.
Then, last month, in honor of [this year’s big iPhone event](https://www.zdnet.com/business/everything-apple-announced-at-its-iphone-18-event-duo/), my editor asked me to write a series of historical Apple stories. While writing ‘[AI completely changed how I develop iPhone apps … and I think I love it](https://www.zdnet.com/tech/apple-a-day-ai-agentic-coding-iphone-ios-mac-apps/),’ I dug through my server for a screenshot or box illustration of [an AI product I produced for the Mac in the late 1980s](https://www.zdnet.com/innovation/how-apple-accidentally-turned-the-mac-into-an-absolute-ai-monster/).
**Also:[I used Claude Code to vibe code a Mac app in 8 hours, but it was more work than magic](https://www.zdnet.com/article/i-used-claude-code-to-vibe-code-mac-app/)**
I found that image, and I also found an old [Macromedia Director](https://en.wikipedia.org/wiki/Macromedia_Director) file containing all 2,338 icons from 30 years ago. In the mid-90s, I had converted Icon Gallery’s icons to Director format and sold the resulting product to animators as an asset library. Director was big in the CD-ROM days, and has since faded into Mac history along with HyperCard and other vintage apps.
But there it was, sitting on my [Mac Studio’s desktop](https://www.zdnet.com/article/best-macbooks/): a 30-year-old file containing all those assets, in a long-dead file format. I felt like an archeologist cracking open an ancient mummy’s tomb.
Claude is my friend
So, I gave that ancient file to [Claude](https://www.zdnet.com/innovation/anthropic-claude-opus-5-5-fable-5-1-performance-costs-less/). My prompt was simple: “This file is an old Macromedia Director file containing a large library of icons. Can you separate the icons into their own folder?”
Claude didn’t put up a fuss. The AI didn’t complain that the Director files were so wildly out of date that it couldn’t do anything. All it asked was what format I wanted the files in, and whether I wanted the white edge pixels to be transparent.
**Also:[I built an iOS app in just two days with just my voice – and it was electrifying](https://www.zdnet.com/article/xcode-26-3-vibe-coding-app-by-voice/)**
According to the log, this process took four minutes and 30 steps. In less time than it takes to brew a cup of coffee, I had 2,000-plus PNG images, organized into topic folders. I didn’t really have any plans for the icons. I was mostly surprised at how easily Claude extracted bit data and converted it into PNG files.
That was on Sept. 2. I then let the extracted collection of vintage files sit in a folder on my Desktop.
There could be an app for that
Eighteen days later, on a Sunday afternoon, I needed a graphic for something I was working on. I thought about my old icons from Icon Gallery and thought, “Hey, it would be cool if I had an app to browse and resize these icons.”
And, in that moment, Icon Gallery ‘97 was born. Why not, right? I have AIs.
I worked in both [Claude Desktop](https://www.zdnet.com/article/chatgpt-work-claude-cowork/) (to talk strategy) and [Claude Code](https://www.zdnet.com/innovation/claude-code-revised-projects-threads/) (to build the Mac app). Within a few hours, I had a working Mac app that could browse the original library and create perfectly scaled, hard-edge bitmap icons from 32×32 pixels up to 1,024×1,024 pixels.

Pixels scale to full size (App Store graphic).David Gewirtz/ZDNET
I officially had a proof of concept.
But how would I productize it? Claude recommended two viable courses of action. The AI recommended naming the product [Icon Gallery ‘97: 30th Anniversary Edition](https://cc.zdnet.com/v1/otc/00hQi47eqnEWQ6T9d4QLBUc?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ficon-gallery-97%2Fid6815353426&u=https%3A%2F%2Fwww.zdnet.com%2Finnovation%2Fclaude-code-vibe-coding-mac-app%2F), celebrating the hand-created retro icons. This vintage feel could be appealing in [a world of AI-generated art](https://www.zdnet.com/article/ai-generated-images-are-a-legal-mess-and-still-a-very-human-process/).
**Also:[I used Claude Code to vibe code an Apple Watch app in just 12 hours](https://www.zdnet.com/article/claude-code-vibe-code-apple-watch-app-in-hours/)**
Claude also recommended adding a recoloring feature, so designers could not only choose the old icons, but recolor them to match brand or identity colors. The AI also recommended creating collections and favorites.

How the recoloring feature works (App Store graphic).David Gewirtz/ZDNET
Then a friend recommended I build in an ‘Export to Slack’ feature, because the retro icons would be very cool as Slack emojis. My wife saw the same potential for dragging the icons into texts. I made sure those features were in the app.

How the Slack emojis work (App Store graphic).David Gewirtz/ZDNET
Once you have favorites and collections, what happens if you want to use the app on another Mac? Ah, so now iCloud syncing needed to be added. And so it was.
Lest anyone imply that [vibe coding](https://www.zdnet.com/innovation/vibe-codings-intoxicating-magical-rush-hides-the-real-work-nobody-talks-about/) involves issuing one “Make me an app,” command, let me dissuade you of that notion. I gave Claude Code 502 individual directives in the four days that I actively interacted with it.
**Also:[75% of developers I surveyed prefer Claude Code over Codex – here’s why](https://www.zdnet.com/article/why-most-developers-prefer-claude-code-over-codex/)**
These were not full-time coding days. I visited the doctor for my yearly physical, spent Friday with a contractor working on the house, and had to turn in three major feature article thought pieces for ZDNET.
But around that work, I [talked to Claude and guided its development process](https://www.zdnet.com/innovation/claude-code-revised-projects-threads/). Then I went back to my other priorities.
Using AI to code a Mac app
Back when we first started using [AI coding agents](https://www.zdnet.com/article/top-30-ai-agents-offer-mixed-functionality-autonomy/), I developed an internal [headcanon](https://www.merriam-webster.com/wordplay/words-were-watching-headcanon-fanon) that helps me think about how to manage the bots. I view them as working partners at the end of a chat transcript. I use this approach to work with many of my human partners, so it works well.
As such, sometimes I fire off a question to Claude Code. In one case, shortly after we built in the in-app purchasing mechanism and proved it worked, I realized that someone could buy the app, do a full icon export, and then request a refund. I asked Claude, “Do we care?”

In-app purchase interface (App Store graphic).David Gewirtz/ZDNET
Claude suggested not fighting refunds. That decision matched with my long-term software publishing style. If someone doesn’t want my code, don’t make them pay for it. But that question fired off a more interesting discovery. Claude realized that all 2,146 icons sat inside the app as loose PNG files. Anyone who downloaded the free version could right-click it, choose Show Package Contents, and copy the entire collection without buying anything.
We added encryption and packaged the app with a single scrambled file. As images are requested, they’re unscrambled dynamically.
Before we submitted the tool to the App Store, we tested it. We deliberately corrupted copies to prove the check would catch them. Then we ran the app’s own decryption engine over every icon. The decrypted output matched the original files, so we shipped it that way.
**Also:[Who’s responsible for catching rogue AI agents? You are](https://www.zdnet.com/innovation/ai-models-hack-businesses-who-is-responsible/)**
At another point, I realized the window scrolled incredibly slowly. I had to persuade Claude to run some tests. As it turned out, the code compressed full-sized images for each preview, and another block of code rebuilt the entire window 482 times during each resize request.
Persuading Claude became a common theme (very much like working with a human partner). I wanted a selection rectangle that could be dragged across icons. Claude thought this approach was unnecessary. Then I explained that Macs have been able to drag-select since before 1997. Eventually, Claude got that one working.
I’ve said this before, but this is how I spent a lot of my career managing programmers. I’d work with them briefly throughout the day, among all the other activities I managed for the company.
[Vibe coding with Claude](https://www.zdnet.com/article/i-used-claude-code-to-vibe-code-mac-app/) didn’t seem much different. The AI even pushed back on some instructions, copped a ‘tude here and there, and complained about some of the assignments. It could totally have been another human at the other end of the chat. In some ways, Claude seemed more human than some people I’ve worked with.
**Also:[‘I can’t stop’: 80% of developers find AI coding more addictive than helpful](https://www.zdnet.com/article/i-cant-stop-80-of-developers-find-ai-coding-more-addictive-than-helpful/)**
Claude also got very fussy about the collection’s provenance. I found it interesting how careful the AI was about making sure the app would get through App Store review. Its concern was who owned the icons. I had to convince it that my company created the icons in the 1990s and that my current business was the legal descendant of the original enterprise. All the assets were mine.
Even so, Claude pointed out some icons Apple was likely to block, including a Caterpillar logo and a person’s head that looked for all the world like Charlie Brown. We also had a bunch of gunshot icons, a popular theme in 1997 but completely tone deaf in 2026. I removed those icons as well.
One really cool advantage of using AI coding is how quickly you can test out ideas. Git can branch code. This capability isn’t AI-related at all, but it means you can revert to a previous codebase or integrate changes. I mixed using Git branches with [AI experiments](https://www.zdnet.com/article/4-ways-to-scale-generative-ai-experiments-into-production-services/). At one point I asked Claude to try a completely different visual design. Claude built it within an hour, and within 30 seconds I decided it was horrid. We were able to revert instantly.
App Store learnings
I am not a complete App Store neophyte, but I might as well be. The last apps I built for the App Store were in 2008. The last payment I got from Apple for those apps was in 2012. The world, and the App Store, have both changed a lot since then.
In preparing my submission to the App Store, I used Claude to walk me through each screen and submission option. I took screenshots of every new screen and sent them to Claude before hitting the confirm or next button. This approach worked quite well.
I also used Claude for advice on setting up the App Store account. The biggest advice I got was that new App Store businesses (those under $1 million in sales) can apply as a small business and commissions will drop from 30% to 15%. That’s a big win.
**Also:[How to install and configure Claude Code, step by step](https://www.zdnet.com/article/how-to-install-configure-claude-code-ai-pricing-developers/)**
Before submitting the app to the App Store, I instructed Claude to launch a series of adversarial agents to examine the app end to end. Although I’d done a lot of testing, the agents did find a few things that needed to be fixed before submission.
Probably my biggest surprise was the graphics that accompany an App Store submission. Apple allows up to ten 2880×1800 graphics that are displayed with the app in your listing. Creating these graphics took me three days around my other work. In other words, creating the graphics took almost as long as creating the app.
That’s because [Claude, Gemini, and ChatGPT](https://www.zdnet.com/article/can-gemini-chatgpt-claude-analyze-video-this-one-wins-test/) were terrible, horrible, unfortunate, ineffective, and overall completely incompetent at creating App Store promo images. While [I’ve had lots of great success with AI image generation](https://www.zdnet.com/article/best-ai-image-generator/), there’s something about getting the message right in an App Store promo image that made the AIs fail. So, I did the work by hand in Photoshop, like a caveman. You can see some of those graphics above, sprinkled throughout this article.
Oh, and here’s a tip. Once you set up TestFlight, which is the tool for sharing your app across users and machines, limit your uploads. On Wednesday, I uploaded 21 builds between 6:49 am and 9:20 pm, while fine-tuning the final look and feel of the submission. Apple refused to accept the twenty-second submission and made me wait a full day to try again.
That pause pushed the whole project back a day.
Here are a few more thoughts:
• Tell the AI to record every decision in an .MD file
• Make the AI measure instead of guess. Metrics work; AI guesses go down pretty much useless rabbit holes.
• Use tooling and deterministic analysis rather than just AI. In other words, tell the AI to write Python scripts for results, rather than give its impressions.
• Launch subagents after every session to review that session’s work.
• Keep an eye on the context usage in each session. Once it reaches about 75%, save progress and restart. The AI starts getting stupider and stupider above 75% context.
• Use outside testers. Neither you nor the AI will catch everything.
Signing up as an Apple Developer costs $99/year. Without that, you can’t upload your software to the App Store or use TestFlight.
Look, I don’t know how well the app will do financially, and frankly I don’t care all that much. I’m certainly not expecting it to fund my retirement. But it was a ton of fun and let me productize something I wanted to use for myself. It was also gratifying to give new life to all that creative retro art from the past. The process gave me a safe and controlled way to learn how to code in-app purchases for my other app projects, and it was a great test case for whether you can get AI to help create an app (in the space of a week) that can be submitted and approved by the App Store and Apple (in just another four days).
Oh, and I did not write one line of actual code. Not. One. Line.
• * *
_You can follow my day-to-day project updates on social media. Be sure to subscribe to_[_my weekly update newsletter_](https://advancedgeekery.substack.com/)_, and follow me on Twitter/X at_[_@DavidGewirtz_](https://twitter.com/davidgewirtz)_, on Facebook at_[_Facebook.com/DavidGewirtz_](https://www.facebook.com/davidgewirtz)_, on Instagram at_[_Instagram.com/DavidGewirtz_](https://www.instagram.com/DavidGewirtz/)_, on Bluesky at_[_@DavidGewirtz.com_](https://bsky.app/profile/davidgewirtz.com)_, and on YouTube at_[_YouTube.com/DavidGewirtzTV_](https://www.youtube.com/user/DavidGewirtzTV)_._

David Gewirtz
Senior Contributing Editor
Computer science professor turned AI innovator David Gewirtz has spent over thirty years driving advancements at the forefront of artificial intelligence and is the recipient of the Sigma Xi Research Award in Engineering. He wrote a pioneering analysis that helped shape the early conversation around AI ethics. He was also a pioneer in the commercializing of AI products, including AI languages and knowledge-based systems. He is the designer of the Al Editor, an experimental artificial intelligence engine for parsing, classifying, and identifying news stories. David is a member of the Association for the Advancement of Artificial Intelligence. He currently serves on the Artificial Intelligence Threat and Mitigation Cross-Sector Council (AI CSC) for InfraGard, a partnership between the FBI and industry leaders for the protection of U.S. Critical Infrastructure. He is the author of Where Have All the Emails Gone?, as well as How To Save Jobs and The Flexible Enterprise.[See full bio](https://www.zdnet.com/meet-the-team/david-gewirtz/)
The Latest from David
• [How I made a paid Mac app in 11 days with Caude – without writing a single line of code](https://www.zdnet.com/innovation/claude-code-vibe-coding-mac-app/)
• [OpenAI’s Dots: Like OpenClaw declawed – for $100/mo ChatGPT Pro users](https://www.zdnet.com/innovation/openai-dots-openclaw-chatgpt-pro/)
• [Meta Muse is the worst AI agent for privacy – and I’ve tried them all](https://www.zdnet.com/innovation/meta-muse-ai-agent-hands-on-test-privacy-concerns/)
Wait, he used a Macromedia Director file from 1997? That’s some serious legacy asset digging. Where did he find that?
Apple approving a no-code app this fast is impressive. The three-decade gap from boxed software to App Store is wild.
Promo images took longer than the code? Hard to argue with that result, but it’s not quite as effortless as the headline suggests.
This brings back memories. Icon Factory was legendary in the HyperCard days. Glad to see the archives repurposed!
Fifty-two directives is a lot of back-and-forth. I guess ‘vibe coding’ still requires significant guidance.