Brett Owers
← All Projects

Whitelabel Flutter App

Archived

May 1, 2022

A whitelabel Flutter app template — built to pull down whenever client work came along. The client work never officially happened, but the template exists. A discussion of whitelabel architecture, why having a starting point matters, and how AI has changed the "client-ready starter" equation entirely.

Purpose

Built a whitelabel Flutter app as a reusable template for potential client projects. The idea: whenever someone needs a mobile app, pull down the template, rebrand it, customize the features, and ship. I have never officially done client work — but having the template ready meant I could say yes if the opportunity appeared.

Stack

FlutterDartFirebaseWhitelabelTemplateMobile

What I Learned

  • A whitelabel app is a product built once and rebranded/reconfigured for multiple clients. The core functionality stays the same — authentication, navigation, user profiles, settings, push notifications — while the branding (colors, logos, fonts, app name) and specific features are swapped per client. Whitelabel architecture requires separating brand assets from business logic cleanly enough that rebranding is a configuration change, not a rewrite.
  • The Flutter whitelabel pattern typically uses flavors (Android) and schemes (iOS) to build different branded versions from the same codebase. A flavor config defines the app name, bundle ID, icon, splash screen, and API endpoints. Running "flutter build --flavor clientA" produces a completely branded app without touching the source code. This is how agencies ship 20 apps from one codebase.
  • Having a starting point is different from having a product. The whitelabel template had auth, navigation, theming, and a settings screen. It did not have a specific value proposition for any specific client. This is the gap between "I can build apps" and "I can solve your problem with an app." The template gets you to the starting line faster. It does not tell you which race to run.
  • The client work never materialized — not because of lack of capability, but because finding clients requires sales, not just code. Building a whitelabel template is an engineering task. Finding someone who will pay you to customize it is a business development task. These are different skills, and having one without the other produces a beautiful template that sits in a repo.

Key Insights

  • In 2022, a whitelabel template was a genuine competitive advantage — it let you say "I can deliver in 2 weeks instead of 8" because the foundation was already built. In 2026, Claude Code and similar AI tools have made the template largely unnecessary for client work. You can now scaffold a fully branded, feature-complete Flutter app from a conversation — with auth, navigation, theming, and custom features — faster than you can customize a template. The starting point is no longer a repo. It is a prompt.
  • What has replaced the template is the document. Instead of maintaining a whitelabel codebase, I would now maintain a set of initial documents — a CLAUDE.md, a DESIGN.md, a feature spec, and a project brief — that an AI agent can use to scaffold the right app for the right client from scratch. The documents encode the decisions. The agent executes them. This is more flexible than a template because the output is custom every time, not a reconfigured clone.
  • The shift from "template-driven development" to "document-driven development" is subtle but significant. Templates encode decisions in code (this is how auth works, this is how navigation works). Documents encode decisions in language (the app should authenticate with email/password, navigation should use a bottom tab bar with 4 sections). Code-encoded decisions are rigid. Language-encoded decisions are adaptable. An AI agent reading a document can make contextual choices that a template cannot.
  • Having a whitelabel template and never using it for client work is not failure — it is inventory. The patterns encoded in that template (flavor-based branding, clean theming separation, modular feature flags) showed up in every Flutter project that followed. Building it was practice. Not selling it was a business lesson, not a technical one.
#Flutter#whitelabel#template#client-work#freelance#AI-agents#CLAUDE.md#document-driven#mobile#architecture

This post was composed through a conversation between Brett Owers and Claude Code (Anthropic). The content reflects Brett's recollection of each project and the lessons drawn from it. Some details may be approximate or omitted — the purpose is to paint an honest picture of a software engineer's development over time, not to serve as a precise historical record.