Shipping an iOS App Solo
A build-in-public story about shipping Resolution Tracker in three weeks with a tight loop and AI help.
I shipped an iOS app last week.
No team. No investors. Just Claude Code, a clear idea, and three weeks of focused work. That is not a humblebrag. It is a data point. The barrier for a solo builder just collapsed, and I want more people to notice it.
The app is called Resolution Tracker. It turns New Year's resolutions into a game. You set goals, break them into steps, and earn XP as you complete them. Streaks, badges, levels. The full dopamine loop, but aimed at something useful.
This is the story of how it came together, why I built it, and what changed for solo builders like me.
The problem I wanted to solve
I do not believe people fail at goals because they are lazy. I think they fail because the gap between intention and action is too wide. You make a big promise to yourself on January 1. Then Tuesday shows up. There is no immediate reward for doing the work. So the habit dies.
Most resolution apps are honest but boring. Set a goal. Check it off. That is not enough to carry you through week two. I wanted a system that made progress visible and addictive in a healthy way. Something that could turn tiny steps into a sense of momentum.
That is where the game layer came from. Not as a gimmick, but as a bridge between motivation and consistency.
The constraints that shaped everything
I built this alone. That is a constraint and a design advantage. It forces you to pick a lane. Every feature has to pay rent. Every screen has to move the user closer to the next action.
I made a list of everything I could build, then cut it hard. No social feed. No complex goal templates. No giant analytics dashboard. No fancy onboarding that drags on forever. The first session had to feel like progress, not setup.
The constraints did the heavy lifting. They made the app simpler. They made the product sharper. They also made the build possible in three weeks.
The core loop
Resolution Tracker is simple by design. The loop looks like this:
- Set a goal
- Break it into steps
- Log actions
- Earn XP
- Watch the streak grow
- Unlock badges and levels
The loop is short because habits are fragile. Every time you log progress, the app gives you feedback. Not in a fake celebratory way, but in a way that makes the effort feel real. Numbers go up. Streaks extend. A badge pops for a milestone. You can see the work stacking.
That visibility is the product. The UI is just the wrapper.
The stack and why I chose it
The stack was a function of speed and reliability. I wanted a stack I could move fast with and trust in production.
Expo + React Native I wanted cross platform from day one. Expo let me move quickly without getting dragged into native build edge cases early. React Native is familiar and flexible. It keeps the build surface smaller.
Supabase It handles auth, database, and realtime updates with minimal friction. I did not want to stitch together a custom backend. I wanted to ship.
Superwall Subscriptions are a trap for solo builders. Superwall removes the hardest parts and lets me focus on the product. It is the difference between monetization being a six week detour and a day of integration.
Claude Code Claude handled most of the implementation. I wrote the product decisions, the interaction patterns, the edge cases. It wrote the scaffolding, the wiring, the boring parts. The workflow felt like rapid pair programming with a fast and tireless partner.
The stack was not exotic. That was the point. The novelty was in the speed of the loop.
Working with Claude Code
The biggest shift was not just speed, it was how the work felt. I would describe a feature, Claude would draft it, I would review, then refine. The loop was tight enough that I could stay in a product mindset instead of a purely technical mindset.
That matters because the hard decisions are not technical. The hard decisions are product decisions. What gets cut. What the default is. What the first screen does. Where the friction is acceptable. Claude did not make those calls. I did.
It felt less like building and more like editing. The code was there quickly. The real work was shaping it into something clean.
The moment it felt real
Submitting to the App Store is always the moment. It is the step that turns an idea into a thing people can actually touch. When I hit submit three weeks after the initial idea, it was obvious how much the loop has changed.
The old playbook is slow. Hire someone. Project manage. Review. Iterate. Hope the output matches your vision. That process can work. It also leaks time at every step.
This time I wrote the vision, built the loop, tested the flow, and shipped. No middle layer. No translation loss.
What was harder than the code
Code was not the hard part. Product decisions were the hard part.
It is easy to add features. It is harder to decide what the app should refuse to become. I had to fight the urge to build a social layer, the urge to add analytics for the sake of analytics, the urge to explain everything in onboarding.
The hardest work was saying no so the core experience could be fast and clear. I wanted the app to feel like a win the first time you used it. That only happens when you keep the loop tight.
Onboarding as a doorway
I kept onboarding to three screens. One idea per screen, one visual, one sentence. If the point could not be explained in that format, it did not belong.
Screen one is the value prop. This is what the app does. Screen two is the method. This is how you use it. Screen three is the differentiator. This is why it is different.
Every screen has a skip button. That was non negotiable. Forced onboarding feels like a lecture, and nobody downloads a goal app to be lectured. If a user wants to jump straight into the product, let them. The ones who stay are the ones who matter.
Monetization without a hard sell
Monetization only works if it feels like a natural step, not a trap door. That is why the final onboarding action is not "Next." It is "View Plans." The language signals progression, not payment.
I kept the paid upgrade tied to a clear moment of value. Show the loop. Let people feel the reward. Then offer the upgrade. The app is not a funnel. It is a habit builder. If the trust is broken early, the habit dies.
The tiny details that kept it human
Small details matter more than big features. The XP animation on completion makes the reward feel real. The streak display sits where you cannot miss it. The stats screen feels like a reward screen rather than a data dump.
Every piece of copy is short on purpose. The user is not looking for a tutorial. They want progress. The product is designed to give them that feeling fast.
Everything I cut was in service of this. More settings. More templates. More features. None of that makes someone log their goal today. The loop does.
Why this matters for solo builders
Solo builders have always been capable. The problem was time. When every feature takes a week, you stop experimenting. You stop shipping. You start asking for permission or funding or headcount.
That changes when the build loop collapses. If you can ship in weeks, you can validate faster. You can get feedback before the idea calcifies. You can iterate based on real use instead of fantasy.
That is why I keep calling this a barrier collapse. The tools did not just get better. They made a whole category of solo work viable again.
Takeaways I want to keep
- Short loops create better products because they force clarity.
- The game layer works when it reinforces behavior, not when it replaces it.
- Constraints are a feature. They make the app sharper.
- The stack matters less than the feedback loop.
- Shipping is a skill. It improves the more you practice it.
Solo does not mean small. It means fewer handoffs. You can move without consensus and still deliver something real. The tradeoff is you own every decision, but that is also the point.
The question I keep coming back to
If you could ship an app in three weeks, what idea would you finally build? Be honest with yourself. The gap between idea and release is smaller than it has ever been.
If you are sitting on something, now is the time right now.
Related Guides
- How to Ship AI Products Fast — The 2-3 week playbook
- AI MVP in One Week — Day-by-day sprint plan
- Solo Founder AI Stack — Compete with agencies
Related Stories
- Shipping an iOS App Solo in 2026 — The full Claude Code playbook
- XP, Streaks, and Badges in a Goal App — How gamification tripled retention
Learn More
For a complete shipping system, join the AI Product Building Course.
Amir Brooks
Software Engineer & Designer