Back to speaking and media

Flutter scaling article

DevTalks · Mobile Stage, 2025

Scaling Flutter to 100K MAU as a Solo Developer

At 100,000 monthly active users, small inefficiencies become infrastructure bills, support queues and reliability incidents. A solo developer cannot solve that by imitating a large engineering organisation. The system has to create leverage instead.

Rusu Dinu-Ștefan's Scaling Flutter to 100K MAU DevTalks banner

Scale the constraints first

Monthly active users are a useful reach metric, but scale becomes real through concurrency, data volume, notification delivery, media processing, third-party limits and support demand. The first task is to identify which of those dimensions is growing and where it can fail. Otherwise, architecture work becomes expensive preparation for the wrong bottleneck.

Solo development adds a second constraint: every system must be operable by the same person who builds product features. A technically impressive component that requires constant tuning is not scalable in that environment. The right design reduces decisions, manual intervention and the number of places an incident can hide.

Measure the user path, not just servers

Mobile performance crosses boundaries. Startup time, network latency, local persistence, API behaviour, image size and device capability all affect the same user action. Server dashboards can look healthy while the application feels slow on a mid-range phone with a weak supermarket connection.

Instrument the few paths users repeat most and follow them end to end. Crash-free use, request failures, time to useful content and completion rates reveal different kinds of risk. Segment enough to see platform and version differences, but avoid collecting metrics that will never influence a decision.

Architecture that creates leverage

Clear boundaries are valuable because they limit how much must change together. In the Flutter client, predictable state, explicit data ownership and resilient local behaviour make releases safer. In backend services, caching, idempotent operations and controlled asynchronous work absorb demand without multiplying user-visible failures.

Automation should target repeated operational work: builds, checks, store delivery, monitoring and recoverable data tasks. Managed services are often worth their premium when they remove an entire category of maintenance, but only after their cost curve and exit constraints are understood. Convenience without cost visibility is delayed risk.

Treat cost as a product metric

Infrastructure cost is not independent from product design. A scan performed on every screen visit, an image stored in several sizes or an unbounded background job can turn engagement into a penalty. Track cost per useful action and per active user so that growth reveals whether the system is becoming more efficient or merely more expensive.

The sustainable goal is not the cheapest stack. It is a product whose reliability, cost and maintenance load remain understandable as usage changes. That requires regular deletion, load testing around real paths and honest decisions about which features a one-person operation can support well.

Three principles for solo scale

  1. 01

    Map the actual growth dimension and the user path it affects before redesigning architecture.

  2. 02

    Choose systems that reduce ongoing operational decisions, even when their unit price is not the lowest.

  3. 03

    Measure cost per useful action alongside reliability so growth remains an advantage rather than a liability.

Conference source

Event profile and original context

This article is the stable, on-domain version of the talk. The event profile remains linked as an independent source while it is available.

View the DevTalks speaker profile