Building a Full Production App with Claude: What Actually Worked and What Didn't

A senior backend developer with years of experience but zero Flutter/Dart knowledge built and shipped a full production mobile app called Warantly (warranty management) for iOS and Android using Claude as their primary development tool. The project took 2.5 months of evenings after a day job.
The Stack
- Frontend: Flutter
- Backend: Laravel 12
- Infrastructure: Ansible (entire VPS environment codified, reproducible from a single run)
How Claude Was Used
The developer managed Claude like a capable but context-limited junior developer. They ran multiple sessions in parallel, each scoped to a single concern:
- Usually 2-3 sessions at a time; at peak, 6 simultaneously (3 backend, 2 Flutter, 1 DevOps)
- Used
git worktreesso sessions could work on different features without conflicts - Their role: architect and integration layer — cycling between sessions, providing context, making cross-cutting decisions
What Claude Did Well
Fast, competent first drafts of well-specified components. Anything with a clear spec and bounded scope came back usable on the first or second pass. Claude was also genuinely good at walking the developer through unfamiliar territory — store compliance, paywall configuration, infrastructure setup — things where guidance was needed, not just code generation.
Where It Broke Down
1. UI Bugs
The biggest failure mode. Claude has no way to see the screen. It would analyze code, make a fix, confidently say "this should resolve it" — and it wouldn't. Multiple rounds on the same visual bug because the agent reasoned about what the UI should do rather than seeing what it actually did. Workaround: extensive debug statements, test by hand, feed Claude exact runtime output and UI screenshots. The feedback loop — instrument, run, report back — became the standard pattern for anything visual.
2. Cross-Session Consistency
The backend agent might design a response format that doesn't match what the Flutter agent expects. Claude doesn't know what other sessions decided. The developer had to be the source of truth for API contracts, shared constants, naming conventions — copying them between sessions manually. Whenever that step was skipped, mismatches were found during integration.
3. Context Drift in Long Sessions
A session that's been running quietly loses the thread — reintroduces patterns already rejected, contradicts constraints from earlier. It doesn't announce this. The output stops being coherent with its own history. Solution: keep sessions focused and disposable. Start fresh when they get long. Front-load critical context as a structured brief rather than relying on conversation history.
What Made It Work
The developer enforced tests and static analysis from day one. They couldn't review Dart/Flutter code with expert eyes, but automated checks held as the quality gate. Without it, they wouldn't have had the confidence to ship. "The hardest part wasn't technical — it was giving up control. I'm an experienced developer and this was the first project where I wasn't reviewing code line by line. Trusting the process (tests pass, linter clean, behavior correct) over reading every function was a real adjustment."
The App
Warantly — warranty management. Track purchases, store receipt photos, get expiry reminders, AI receipt scanning, product recall alerts. Free with unlimited warranties. Pro adds AI scanning, recall alerts, and maintenance schedules. Available at warantly.app.
📖 Read the full source: r/ClaudeAI
👀 See Also

Sonarly: AI-driven Production Alert Triage and Resolution
Sonarly connects with observability tools to triage and resolve production alerts, reducing noise and focusing on critical issues.

Simplifying Automation with OpenClaw Wrappers
OpenClaw Wrappers offer an efficient way to manage AI coding agents. Discover how these tools integrate easily into existing frameworks with specific command examples and community feedback.

MoltMarket: A Marketplace for Hiring AI Agents to Execute Digital Tasks
MoltMarket is a free platform where users can post jobs for AI agents to complete autonomously. The marketplace currently has 100+ users and verified agents that can handle tasks like web scraping, code generation, and content writing.

Mia: Local AI Workspace Daemon with Native Android App and P2P Streaming
Mia is a daemon that runs on your machine and pairs with a native Android app over P2P, allowing you to kick off and monitor long-running AI coding tasks from your phone. It supports OpenCode, Claude Code, Gemini CLI, and Codex agents, streaming output directly to your device in real time.