Case study
Running four live mobile apps on one shared foundation
Built one shared .NET MAUI base for navigation, dependency injection, offline sync, storage, and theming under four live apps, cutting new-app setup from weeks to days.
-
Situation
As a solo developer shipping several iOS and Android apps, I was re-solving navigation, storage, sync, and theming in each one. Every round cost weeks, and the separate answers drifted apart from app to app.
-
Constraints
One developer maintains every app on both platforms, so each fix and each OS or SDK update has to reach all of them. Each app still had to keep its own identity, store identifiers, palette, and product features, from a map-first geocaching app to a print-shop organizer.
-
Decision
Build one shared .NET MAUI base that carries Shell navigation, dependency injection, offline sync, SQLite storage on the device, and theming built on shared semantic colors, and start every app from it. Each app supplies its own screens, data model, palette, and features. OS and SDK updates are made once in the base, then rolled to each app.
-
Tradeoff
The hard part is deciding what belongs in the base and what stays in each app. Put too little in the base and every app re-solves the same plumbing; put too much in and one app's needs leak into all four.
-
Outcome
New apps start with working navigation, storage, sync, and theming on day one, and new-app setup went from weeks to days. A fix made in the base is rolled out to every app, and OS and SDK updates are done once and rolled out, which keeps four apps current on the App Store and Google Play with one developer.
-
Retrospective
The line between base and app is still drawn feature by feature. Moving 3DCDesign onto the current base showed the cost of drawing it late: fitness-app names and assets had to be cleared out, while its PDF viewer stayed an app-only feature. Each app still carries its own copy of the base, so the next step is consolidating it into one shared package that all four apps reference.
Detail
The base is plumbing, not product. Adventure Cache, Your Whey Fitness, 3DCDesign, and Cache Creature are all .NET MAUI apps on .NET 10 for iOS and Android, with Shell navigation and a SQLite store on the device. What differs between them is the part a user sees: the screens, the data, the palette, and the store identity.
Diagram as text
- Fixes, OS and SDK updates
- Shared .NET MAUI base: Shell navigation, dependency injection, offline sync, SQLite storage, theming on shared semantic colors
- Four live apps
- Adventure Cache
- Your Whey Fitness
- 3DCDesign
- Cache Creature
- Fixes, OS and SDK updates to Shared .NET MAUI base (made once)
- Shared .NET MAUI base to Adventure Cache
- Shared .NET MAUI base to Your Whey Fitness
- Shared .NET MAUI base to 3DCDesign
- Shared .NET MAUI base to Cache Creature

Adventure Cache, Your Whey Fitness, and 3DCDesign: three of the four apps on the shared foundation.
For 3DCDesign (external) , joining the base meant aligning its target frameworks, supported OS versions, and shared package versions while keeping its identity, store identifiers, and 3D-printing features intact. Adventure Cache reached .NET MAUI through a full rebuild from Xamarin.Forms, written up in its own case study, and Your Whey Fitness shows how far one app can grow on top of the same base.
Next case study: Turning one product’s knowledge into answers for product, QA, and developers