ContentForger

Guides

How to Scope an MVP for Your First Web App

How to scope an MVP for your first web app: write the user need, find the one journey, test the riskiest assumption and cut the rest.

By Thomas Lovas Lokoy — 2026-10-17, last updated 2026-10-17

Paper wireframe sketches with a pencil
Photo: 2009-02-18 - Photo-A-Day by jking89 · CC BY 2.0 · cropped
On this page (10)
  1. Why MVP scope goes wrong
  2. Step 1: write the problem as a user need
  3. Step 2: find the one journey that proves it
  4. Step 3: list your riskiest assumptions
  5. Step 4: decide what "viable" means for you
  6. Step 5: prototype before you build, if the risk is in the idea
  7. Step 6: put a time box on it
  8. Step 7: release to a few people first
  9. A one-page MVP scope
  10. Sources

An MVP, or minimum viable product, is the smallest version of your app that lets a real person do the one thing it exists for, so you can learn whether it is worth building further. Most first web apps do not fail because the code was bad. They fail because they were scoped as a finished product, took months, and launched to find that the core idea needed changing. Scoping an MVP well is the skill that prevents that.

There is no official standard for what an MVP is, so this guide borrows from a source that has thought hard about building digital services in stages: the UK government's Service Manual, which splits work into discovery, alpha, beta and live. Its phases were written for public services, but the reasoning applies to a side project as much as to a ministry. Where this guide gives its own rules of thumb, it says so.

Why MVP scope goes wrong

A first app usually starts as a list of features: accounts, a dashboard, notifications, payments, dark mode. Each sounds small. Together they are months of work, and none answers the question that matters early: does anyone want the core thing?

The fix is to start from a problem, not a feature list. The GOV.UK guidance on discovery is direct about this order of work:

Before you commit to building a service, you need to understand the problem that needs to be solved.

It also says, in so many words, "You should not start building your service in discovery." That is a useful discipline for a solo builder who can generate a full app in minutes. Being able to build fast makes it more tempting, not less, to build before you know what to build.

Step 1: write the problem as a user need

The Service Manual suggests writing user needs in a three-part format:

  • As a (which type of user has this need?)
  • I need, want or expect to (what does the user want to do?)
  • So that (why does the user want to do this?)

The important rule in that guidance is that good user needs "focus on the user's problem rather than possible solutions." Its example is someone needing a reminder, not needing an email or a letter. The email is one way to meet the need. It is not the need.

Write one primary need and at most two or three secondary ones. For example: "As a freelance designer, I need to know which invoices are overdue, so that I can chase them before the end of the month." That sentence already rules out dashboards, charts and team accounts.

The guidance also warns that needs should be based on research, not assumptions, and that opinions from people who are not users should be treated as assumptions to test. If you are your own first user, that is a fine starting point, but say it to yourself honestly and plan to talk to at least a few other people who have the same problem.

Step 2: find the one journey that proves it

From the primary need, write the single path a user takes from arriving to getting the outcome. For the invoice example: sign in, add an invoice with a client, amount and due date, see a list where overdue ones stand out. That is the journey. Everything in the MVP should serve it.

A practical test for each feature on your original list: if this feature were missing, could the user still complete the journey? If yes, it is not in the MVP. Applying that to the invoice app:

FeatureNeeded for the journey?Decision
Sign inYes, invoices are privateIn
Add and edit an invoiceYesIn
List with overdue highlightedYes, this is the outcomeIn
Email reminders to clientsNo, the user can chase manuallyLater
PDF exportNoLater
Team accountsNo, the first user works aloneLater
Charts of income over timeNoLater
Dark modeNoLater

The "Later" column is a backlog, not a rejection list.

Step 3: list your riskiest assumptions

The GOV.UK alpha guidance says "a crucial part of alpha is identifying your riskiest assumptions and testing them." Every app idea rests on a few assumptions, and some are far more likely to be wrong than others. Write them down. For the invoice app:

  • Freelancers lose track of overdue invoices often enough to care
  • They are willing to enter invoices manually rather than import them
  • Seeing the overdue list is enough; they do not need the app to send the chasers

The riskiest one is the assumption that, if wrong, makes the whole app pointless. Your MVP should be designed to test that assumption first. If manual entry is the big risk, the add-invoice form must be fast, and you should watch whether people actually fill it in. If it turns out they will not, you have learned something important for the cost of a small app instead of a large one.

Step 4: decide what "viable" means for you

"Minimum" is easy to over-apply. An MVP that is so bare it cannot be trusted with real data will not teach you anything, because nobody will use it for real. Viable means the core journey works properly. In practice, that means a short list of things that are not optional even in the smallest version:

  • Data is saved reliably and each user can only see their own records
  • Inputs are validated and errors are shown in plain language
  • The app works on a phone screen if your users will be on phones
  • There is a way for users to tell you what is missing

Everything else can be rough. Once you start generating code from this scope, five mistakes first-time AI app builders make covers what tends to go wrong next.

Step 5: prototype before you build, if the risk is in the idea

The Service Manual describes alpha as the phase to "try out different solutions to the problems" found in discovery, and tells teams to "build things that are just complex enough to let you test different ideas, not production quality code." It expects teams to throw away code and lots of ideas at the end of alpha.

Its page on prototyping explains why: prototyping lets a team explore design ideas much faster and at lower risk than using production code. It notes that sketches are useful for exploring basic ideas, while code prototypes are better for user research because they are more realistic. It also says, plainly, "Do not just copy prototype code into production."

For a solo builder, this means two different things depending on where your uncertainty is:

  • If you are unsure the idea is wanted, show people a sketch or a clickable mock-up before writing a real backend. A conversation over a drawing can kill a bad idea in an afternoon.
  • If you are sure of the need but unsure of the workflow, build a quick working prototype, watch a few people use it, and be willing to rebuild rather than patch it into the real thing.

Step 6: put a time box on it

GOV.UK suggests discovery typically lasts about 4 to 8 weeks and alpha typically 6 to 8 weeks. Those numbers are for multidisciplinary government teams working full time on large services, so they are not targets for a weekend project. The useful idea is the time box itself: decide in advance how long you will spend before you stop and look at what you have learned.

A rule of thumb for a first app built alone: pick a period short enough that you would not be upset to throw the work away. If the MVP will take longer than that, the scope is too big. Cut from the "Later" column until it fits, not from the "viable" list.

Step 7: release to a few people first

The beta guidance describes starting in private beta by "inviting a limited number of people to use your service," and only later opening up to anyone who needs it. It also says to "iterate the service based on what you learn."

For a first app, that means giving the MVP to a handful of people who have the problem, watching where they get stuck, and only then pulling items from the "Later" column in the order users ask for them.

The discovery guidance makes one more point worth keeping: stopping is a valid outcome. If the research shows the problem is not real or not worth solving, deciding not to continue is a result, not a failure.

A one-page MVP scope

Before you build, you should be able to fill in this page without hedging:

ItemYour answer
Primary user needAs a ..., I need ..., so that ...
The one journeyFrom arrival to outcome in four or five steps
Riskiest assumptionThe belief that, if wrong, makes the app pointless
How you will test itWhat you will watch real users do
Viable must-havesData safety, validation, mobile, feedback route
Later listEverything else, unordered for now
Time boxThe date you stop and review

If you need a starting point for the idea itself, our list of app ideas you can build in a weekend has several small-scope ideas to run through this process. Once the scope is fixed, the REST API design basics guide will help you keep the few endpoints the MVP needs consistent from day one.

Sources

ShareXLinkedInFacebook

Was this article helpful?

New guides in your inbox

One short email when we publish something useful — tutorials, comparisons and launch checklists. Unsubscribe in one click.

Related articles