How I Shipped Two iOS Apps to the App Store as a Solo Developer
How I Shipped Two iOS Apps to the App Store as a Solo Developer
Quick answer: Yes, you can ship to the App Store as a solo developer. The real bottlenecks aren't technical — they're App Review timing (unpredictable), code signing (annoying but solvable), and scope creep (the actual killer). If you cut ruthlessly, pick SwiftUI, and treat v1 as the smallest thing with real value, you can get there.
In 2026, I shipped two iOS apps to the App Store. Both are live. Both have real users. I built them alone, around a full-time job, without a co-founder.
One is Muhasaba — an Islamic daily reflection app where you write or speak your thoughts and get AI-guided responses grounded in Quran and Sunnah. The other is Spree — a wishlist app where you paste any product URL and it auto-imports the title, price, and image. Two different categories, two different problems, one developer.
Here's what actually happened.
Why These Apps Exist
Both apps came from genuine personal frustration. That matters more than it sounds.
With Muhasaba, I was already doing a daily reflection practice. I wanted something that could respond to my thoughts through an Islamic lens — not generic self-help prompts, not a basic journaling app. I wanted Quran and Sunnah woven into the feedback. Nothing like that existed, so I built it.
With Spree, my wishlist was a Notes folder full of screenshots. Disorganized. No prices. No way to rank or compare. Every time someone asked what I wanted for a birthday, I had to dig through a chaotic mess. The app I wanted already existed in my head — I just had to build it.
Neither app started as a business idea. They started as tools I actually needed. That's the honest origin story for both.
The SwiftUI Decision
When I started Muhasaba, I made a deliberate call: SwiftUI only, no UIKit.
In 2025 and into 2026, SwiftUI has matured enough for a production app. Declarative syntax means faster iteration. State management is cleaner. You can go from idea to screen without the overhead UIKit demands. For a solo developer, that velocity matters.
The tradeoffs are real. SwiftUI still has rough edges around certain animations and complex list behaviors. There are moments where you hit a wall and UIKit would have had a clear solution for years. But for most screens in a productivity or content app, SwiftUI moves faster — and as one person doing everything, faster is the constraint you optimize for.
What Nobody Tells You About App Review
The hardest part of App Review isn't rejection. It's the waiting.
Muhasaba was approved in 36 hours. That's fast. But when you submit, you don't know it'll be 36 hours. Apple's review times can range from under a day to two weeks, depending on the category, the features, and factors nobody fully understands.
So you plan for two weeks and hope for two days. That means you can't schedule a launch around a review submission. You submit, you wait, you do other work. When approval comes, you launch.
For apps using AI or microphone access — which both of mine do — you need clear privacy justifications in your metadata. Muhasaba uses voice input via Whisper and reads microphone data. Spree accesses the network for URL scraping. Both required explicit usage descriptions. Reviewers read them. Make them clear.
Code Signing Is Annoying, Not Hard
Let me save you a few hours: enable automatic signing in Xcode.
The Apple Developer Program costs $99 per year. You need it to submit to the App Store. Inside Xcode, under Signing and Capabilities, there's an option to let Xcode manage your signing automatically. Turn it on. Let it generate and rotate certificates and provisioning profiles for you.
I spent time early on manually managing certificates. I rotated an expired certificate wrong, broke my build, and spent an afternoon fixing it. After switching to automatic signing, I haven't touched a provisioning profile manually since.
The concepts are worth understanding — what a certificate is, what a provisioning profile does, the difference between development and distribution signing. But you don't need to manage them by hand. That's what the tooling is for.
The Feature I Cut (And Why That Was Right)
Both apps launched without features I had planned.
Muhasaba had a community or social layer on the roadmap — a place to share reflections, see others' virtue tracking. It didn't ship in v1. Spree had a browser extension so you could save products without opening the app. Also didn't ship.
Neither of those omissions was a failure. They were correct decisions.
V1 should be the smallest thing that delivers the core value. For Muhasaba, the core value is: write a reflection, receive Islamic guidance. Everything else is a layer on top. For Spree, the core value is: paste a URL, get your product saved cleanly. The browser extension makes that easier — it's not the thing itself.
If I had built both those features, I'd still be building. Instead, I have users, feedback, and a clear sense of what actually matters to people. That's worth more than a feature list.
What Actually Gets People Downloading
Shipping isn't the end of the work. It's the beginning of a different kind of work.
For Muhasaba, the growth vector has been content. I built a learning section at muhasaba.me/learn with articles on Islamic journaling, the practice of muhasaba, and virtue development. People search for those topics. They land on the page. They find the app. Organic search to landing page to App Store — that's the funnel.
For Spree, the AI virtual try-on feature is what people share. When someone can paste a clothing product URL and see themselves wearing it, they show their friends. Word of mouth from a genuinely surprising feature does more than most marketing.
Neither of those things happened by accident. I thought about what would give someone a reason to tell another person about the app, and I built toward that.
The AI in Each App
Both apps use AI. Neither uses it as a gimmick.
Muhasaba uses Whisper for voice-to-text transcription of spoken reflections. It then uses GPT-4 to generate responses grounded in Quran and Sunnah — referenced properly, not hallucinated. The model is prompted carefully to stay within Islamic scholarly frameworks. That's the whole product premise.
Spree uses a virtual try-on API that composites the user's photo with clothing product images. It's technically impressive, but the value is practical: you see what something looks like on you before buying. Returns drop. Confidence goes up.
Both AI features add real value to the specific use case. That's the bar I'd recommend: if removing the AI feature makes the app worse in a meaningful way, keep it. If you're adding it because it sounds impressive, cut it.
The Revenue Model
Both apps are free with a Pro subscription. No ads.
I thought about ads for about ten minutes. Then I thought about what it would feel like to have an ad appear after someone typed out a vulnerable reflection in Muhasaba. That was the end of that conversation.
Pro unlocks unlimited usage — more AI responses, unlimited wishlist items. It's a clean value exchange. Free users get enough to understand what the app does. Pro users get the full experience.
Would I Do It Again?
Yes. Without hesitation.
Building alone means you make faster decisions. You don't need to align with a co-founder on every call. You ship earlier because there's no one to defer to. And you learn the entire stack — design, backend, submission, marketing — because nobody else is doing any of it.
That constraint isn't a disadvantage. It's a forcing function. It makes you figure out what actually matters in an app, and it strips away everything that doesn't.
If you're sitting on an app idea and waiting for the right time or the right team, this is the post where I tell you that the right time is now and the right team is you. The App Store doesn't care how many people built the thing. It cares whether the thing works.
Both of mine work. Yours can too.