MVP

How to Scope a Mobile App MVP (Without Setting Yourself On Fire)

dedev team 7 min read

The single biggest reason mobile MVPs fail isn’t bad code, bad design, or the wrong framework. It’s bad scope. Specifically: scope that started reasonable, then quietly absorbed “just one more thing” until the timeline tripled, the budget doubled, and the team lost the plot. We’ve shipped 30+ mobile apps and almost every painful project shared the same root cause — we (or the founder) said yes to something we should have said no to.

Here’s the framework we use to scope a mobile MVP that actually ships in 2–8 weeks.

Step 1: Write the one-sentence value prop

Before features, before screens, before tech stack: write a single sentence that finishes “This app helps [who] do [what] by [how].” If you can’t fit it into one sentence without semicolons, your MVP is two MVPs.

Examples that work:

  • “This app helps busy parents meal-plan for the week by generating a grocery list from a 5-minute weekly quiz.”
  • “This app helps indie ceramicists sell their work by letting them list, photograph, and ship a piece in under 90 seconds.”

Examples that don’t work:

  • “It’s an Instagram for art collectors with a marketplace, an auction feature, and a private messaging system.”
  • “It’s like Strava but for golfers, hikers, runners, and cyclists, with social features and gear reviews.”

If your sentence has “and” in it more than twice, the scope is already too big.

Step 2: Map the user journey to first “aha”

Write down every step a brand-new user takes from opening the app for the first time to experiencing the value prop. If your value prop is “generate a grocery list from a 5-minute quiz,” the journey is roughly:

  1. Open app
  2. Sign up (or skip)
  3. See what the app does (1 screen)
  4. Take the quiz (5 screens)
  5. See the grocery list
  6. Save it / share it / send it to a grocery delivery service

Now look at your list. Every screen on that list is in scope. Everything else is not. Settings, profile editing, dark mode toggles, notification preferences, an admin panel, a referral program — none of those are needed for a user to experience the value prop. They go on the v2 list.

Step 3: Cut to the jobs-to-be-done

For each screen on your journey, ask: what is the user trying to do here? Then design the minimum interface that lets them do that job. A “save the grocery list” screen needs a save button. It does not need:

  • A list-naming flow
  • Folders
  • Tags
  • A history of past lists
  • Sharing to 12 social platforms
  • An “are you sure?” confirmation dialog

Add features back when real users tell you they need them, not when you imagine they might. The cheapest user research is the research you don’t have to do because you didn’t build the feature in the first place.

Step 4: Define what’s NOT in scope, in writing

This is the most overlooked step and the one that saves the most pain. After you’ve listed the in-scope features, write a second list called “v2 — not in this MVP.” Put everything you were tempted to include but cut. Be specific:

  • “No dark mode in v1”
  • “No push notifications in v1”
  • “No web version in v1 (mobile only)”
  • “No social login in v1 (email + password only)”
  • “No analytics dashboard for users in v1”
  • “No offline mode in v1”

The point is not to commit to building these later — half of them will turn out to be unnecessary once you have real users. The point is that when someone (you, your co-founder, a beta tester, your developer) suggests adding one of these mid-build, you can point to the list and say “v2.” That single conversation is worth thousands of dollars.

Step 5: Estimate complexity, not time

Time estimates are wrong because every developer is bad at them and every project hits surprises. Complexity estimates are more honest. Group your in-scope features into three buckets:

  • Simple — a single screen that reads or writes one piece of data. Login, settings, a list, a detail page.
  • Medium — multiple screens that share state, or a screen with non-trivial UI logic. A multi-step form, an interactive map, an in-app camera.
  • Complex — anything involving real-time updates, payments, video, ML, or third-party SDKs you’ve never integrated before.

A 4-week MVP can comfortably hold ~6 simple, ~3 medium, and ~1 complex feature. Beyond that, you’re not scoping an MVP — you’re scoping a v1 product, which is a different (and more expensive) thing.

Step 6: Pick the launch surface

iOS, Android, both, or web-first? In 2026 with Flutter or React Native, “both” is almost free for the build but doubles the cost of QA, app store submission, and support. For an MVP, we usually recommend:

  • Both iOS and Android if your audience is mainstream consumer or international
  • iOS first if you’re targeting US founders, designers, finance, or anyone who pays for software
  • Android first if you’re targeting India, Brazil, Southeast Asia, or any market where Android dominates
  • Web first if your value prop doesn’t actually need a phone (be honest)

Common scope-creep traps

Watch for these. They almost always show up around week 2 or 3:

  • “Just one more screen.” One more screen is one more set of edge cases, one more set of states, one more set of bug reports. Cap the count and stick to it.
  • “Let’s also support web.” Web is a different surface with different patterns. Adding it mid-build doubles the work and drags both surfaces down.
  • “While we’re in there…” If a feature wasn’t on the original list, it doesn’t get added “while we’re in there.” It goes on the v2 list and gets prioritized properly.
  • “It’ll only take an extra day.” It will take three.
  • “My designer friend said the UI should…” Your designer friend is not a paying customer. Ship to your scope, then iterate based on feedback from people who actually use the app.

What good scope looks like

A well-scoped MVP fits on one page. It has a one-sentence value prop, a 6–10 step user journey, a list of 8–12 features grouped by complexity, a clearly written “not in v1” list, and a single launch surface. The whole thing should be readable in 90 seconds.

If your scope document is 12 pages, it’s not a scope — it’s a wishlist. Cut it.

The hardest part is saying no

Every cut feels like you’re shipping a worse product. Every cut feels like you’re letting your users down. Every cut feels like a competitor will eat your lunch. None of those things are true. The product that ships in 6 weeks beats the product that almost ships in 6 months, every time. You can always add features after launch. You cannot get back the months you spent not launching.

If you want a second pair of eyes on your MVP scope before you commit budget, book a free 30-minute call. We’ll go through your feature list together and help you figure out what’s actually needed for v1. There’s no pitch — half the time we tell founders they don’t need an agency at all yet, just a tighter scope.

If you’ve already done the scoping and you’re ready to build, our MVP service ships fixed-scope, fixed-price Flutter MVPs in 2–8 weeks.


Keep reading

Ready to ship your app?

Book a free 30-minute call. We'll discuss your idea, share a fixed-price quote, and map a timeline.

Book a Call