DNNR Tech · 2025–present
One person, 20+ apps
The system behind building and running 20+ live apps alone: shared modules, one analytics standard, a KPI pipeline across five data sources, and AI agents that handle QA, growth, and store operations.
- Role
- Founder and the whole team
- Team
- Solo, plus AI agents
- Timeline
- 2025–present
- Stack
- Flutter, Firebase, GA4, AdMob, RevenueCat, App Store Connect and Play APIs, Python, Claude Code agents

The question
Twenty-plus apps is too many for one person unless the work that repeats is automated and the work that doesn't is prioritized by data. This case is about the operating system, not any single app. It is also the most direct answer to "what does it look like to build with AI, not just put AI in the product?"
Shared modules instead of twenty copies
Every app is Flutter on Firebase, so anything solved once can be solved for all of them. The catalog of shared modules includes:
- Permission ladder. Tracking consent, notifications, location, and review prompts fire only at a value moment, one interruptive prompt per session, consent last. Born in AutoMiles, used everywhere.
- Ad gate policy. No fail-open: a gated feature never unlocks without an ad or purchase, and the app never adds its own delay after an ad closes. Written after measuring a 52% ad mis-click rate on one app's cold start.
- LLM moderation and translation for every community feature, with one set of rules and one cost model.
- Photo-library visit detection. On-device scanning of photo metadata to reconstruct places you've been. Built for a national-parks app, then ported to golf, travel, and store-finder apps.
- A design direction document with 24 self-check questions that every new screen has to pass, distilled from hundreds of my own design corrections.
One analytics standard, one scorecard
Each app reports to GA4 with the same event definitions and a traffic_type field that keeps my own test devices out of the numbers (a lesson learned after a growth trend turned out to be my own builds). A Python pipeline pulls GA4, AdMob, RevenueCat, App Store Connect, and Google Play into one scorecard: installs, DAU/MAU, D1/D7/D30 retention, stickiness, ARPDAU, organic trend.
The scorecard decides where the time goes. In 2026 it picked four focus apps and put the rest on maintenance, overriding my own preferences in at least two cases. It also surfaced the single highest-return task in the portfolio: a rating fix on the largest funnel.
Launch gates and store automation
- A pre-release gate runs every iOS app through cold launches on the newest simulator, crash-report checks, and an age-rating audit against the code, and blocks submission on failure.
- Store listings, release notes in multiple languages, screenshots, and submissions go through the App Store Connect and Play APIs. Reviews, rejections, and resubmissions are scripted; only the final click stays manual.
- A user-feedback pipeline routes in-app messages and store reviews to a chat channel, where each app's session picks them up.
AI agents as the team
The day-to-day is run with Claude Code agents organized as seats: planning, development, growth, content, and QA, each with its own memory and rules. A control layer opens sessions per app, routes feedback to the right one, and keeps a ledger of decisions that need a human. The human in the loop is me, and the rules I wrote for the agents (cost gates before any paid API call, no force pushes, no expedited reviews, no deletion features unless legally required) are the same rules I would give a team.
What this proves
It is not that one person can do the work of a team. It is that a product person who can design, code, and read data can decide what not to build, automate what repeats, and keep twenty products alive with their quality bar intact. That is the job I want to do at a larger scale.
