Two people. Five live apps on the App Store and Google Play. Daily updates, bug fixes, feature releases, and user support. Two years ago this would have been a hiring problem. Today it's an AI tooling problem β€” and we've figured out how to solve it.

This isn't a product review or a list of "best AI coding tools." It's a practical breakdown of how we actually use these tools to ship and maintain multiple apps with a tiny team. What works, what doesn't, and where the real productivity gains come from.

The Tool Stack (Kept Deliberately Simple)

The instinct when you discover AI coding tools is to try all of them. Resist that. The overhead of context-switching between tools eats into the time savings they create.

We use three tools, each for a specific purpose:

Claude Code is the workhorse for complex feature development and architecture work. What makes it different from other AI coding tools is context window depth β€” it can hold an entire codebase in mind and make coherent changes across multiple files. When we're adding a new feature to our Flutter apps, we describe what we need in plain language and Claude Code writes the implementation across whatever files need to change. It gets the architecture right because it understands the existing structure.

Cursor is our day-to-day editor. It's VS Code with AI deeply integrated β€” inline suggestions, file-aware chat, and the ability to reference specific parts of the codebase in natural language. For smaller changes, quick bug fixes, and exploratory coding, Cursor is faster than Claude Code because the feedback loop is tighter.

GitHub Copilot runs in the background as a continuous suggestion engine. Boilerplate code, repetitive patterns, obvious completions β€” Copilot handles this layer automatically. It's not as smart as the other two, but it saves real time on mechanical work.

The Real Workflow: From Feature Request to Ship

Here's what actually happens when a new feature needs to be built.

Step 1: Write a clear spec. The quality of AI output is almost entirely determined by the quality of the input. Before touching any tool, we write a 5-10 sentence description of what we're building: what it does, what the user experience is, what constraints exist (platform requirements, data structures, existing patterns to follow). Vague requests produce vague code.

Step 2: Use Claude Code for the initial implementation. With the spec written, we point Claude Code at the relevant part of the codebase and ask for the implementation. For most features, the first output is roughly 70-80% of what we need β€” functional code that follows existing patterns, handles the basic cases, and doesn't introduce obvious technical debt.

Step 3: Review and iterate. This is the step that AI marketing tends to skip over, but it's essential. Every piece of AI-generated code needs a human review. We check: does the logic actually match the spec? Are edge cases handled? Is there anything that could break existing functionality? Is the code readable?

Step 4: Test on device. Hot reload in Flutter makes this fast. The feature gets tested on real devices before any commit. AI-generated code can have subtle issues that only surface in actual use β€” layout problems on specific screen sizes, timing issues, state management gaps.

Step 5: Submit. When it's solid, it goes into the submission queue for App Store/Play Store review.

Where AI Coding Tools Save the Most Time

Not all development tasks benefit equally from AI assistance. Based on our experience, here's the breakdown:

Bug hunting and fixing β€” massive time savings. Debugging is mostly reading code, not writing it. You spend 80% of your time understanding what's happening, 20% actually fixing it. AI dramatically compresses the understanding phase. Paste the error, the stack trace, and the relevant code β€” Claude Code typically identifies the root cause and proposes a fix in under a minute. This used to take 30-60 minutes of Stack Overflow spelunking.

Boilerplate and repetitive code β€” huge time savings. CRUD operations, widget implementations, API integration patterns β€” these follow predictable structures. AI handles them with minimal human input. We estimate 60-70% time savings on this category.

Architecture decisions β€” some value, but proceed carefully. AI can sketch out an approach to a new system design, and that sketch is usually a reasonable starting point. But architecture decisions have long-term consequences that AI doesn't fully reason about. We treat AI architecture suggestions as a first draft to critique, not a final design to implement.

Security-sensitive code β€” minimal AI reliance. Authentication flows, data encryption, privacy-related code β€” we don't let AI write this without heavy human review. AI-generated security code can have subtle vulnerabilities that aren't obvious on first inspection.

The 5-App Weekly Schedule

Maintaining five apps simultaneously required us to be explicit about scheduling. Here's the rough weekly rhythm:

  • Monday: Super Rich Dad (μŠˆνΌλΆ€μžμ•„λΉ ) β€” weekly data refresh, any bug reports from the weekend, AdMob revenue check
  • Tuesday: Spelling Quiz King + Animal Quiz King β€” content additions, quiz bank updates
  • Wednesday: 100 Routine Push Ups β€” workout data, UX improvements based on user feedback
  • Thursday: WordWise GRE Coach β€” vocabulary database updates, feature development
  • Friday: All apps β€” crash report review, review responses, App Store optimization tweaks

Without AI tooling, this schedule would require twice the hours. With it, each app slot is roughly 2-3 hours of focused work, including both development and maintenance tasks.

What AI Still Can't Do

The limitations are worth being honest about, because overreliance on AI tooling creates real problems.

AI coding tools have training data cutoffs. When Flutter releases a major update or an App Store API changes, the AI may confidently generate code based on the old version. You have to catch these discrepancies by cross-referencing official documentation.

AI doesn't understand your users. It can implement a feature, but it can't tell you whether users actually want it, whether the UX is intuitive, or whether the onboarding flow is causing drop-off at the wrong step. That judgment requires user data and human intuition.

And AI cannot make strategic decisions. Which app should we update first? Is this feature worth building at all? What's the highest-leverage thing we can do this week? These questions require context about the business that no AI coding tool has.

AI writes the code. Humans decide what to build. That division of labor is the key to making a small team punch above its weight.

See the apps we've built with this workflow

Super Rich Dad is our most-used app β€” real-time currency and market tracking for everyday investors.

More Posts
Back to Blog