How to Build an MVP (Minimum Viable Product): The Definitive Guide
This is the most comprehensive guide on how to build an MVP (Minimal Viable Product). In this in-depth blog post you will learn everything about tools for building MVP, from what you need to know before you start building MVP to building landing page for MVP to technologies which help you to streamline the development process.
In this blog post I will cover:
- What You Need To Do Before Building an MVP
- Landing Page for Your MVP
- Strategies for Building an MVP
- MVP Toolkit
What You Need To Do Before Building an MVP
If you are not sure if you need an MVP or prototype, check my previous blog post which describes differences between a prototype and a minimum viable product. If you decide to start building a minimum viable product, take a look at this short video, where Eric Ries, the author of The Lean Startup, talks about the concept of building MVP product.
Define the Main Problem Your MVP Will Solve
From the beginning, you should attempt to apply Blue Ocean Strategy. This approach describes Red Oceans as all the industries in existence today, the known market space. Blue Oceans describes the unknown market space, all the industries not existing yet. This concept is about getting out of the red oceans of bloody competition and into a blue ocean of uncontested market space.
The first thing you need to figure out is your value proposition. It should be short and easy to understand. You should be able to explain your value proposition in seconds. If you can’t easily explain it, your customer won’t understand it. You should define a position statement that encapsulates the main value of your product.
How to write a position statement?
You can create a template from Geoff Moore’s book Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers.
TemplateFor ____________ (target customer)
who ____________ (statement of the need or opportunity)
our (product/service name) is ____________ (product category)
that (statement of benefit) ____________ .
who spend a lot of time comparing the performance of advertisements across various social networks
our product is web-based analytics software that provides advanced engagement metrics.
How to find value proposition examples?
If you want to see an original value proposition of products such as AirBnb, Paypal, Uber and others, you can check the early versions of their home page. Internet Archive is a digital library, which provides public access to collections of digitized materials, including websites. Its web archive, the Wayback Machine, contains hundreds of billions of web captures.
The AirBnb website from 2010.
The Paypal website from 2001.
The Uber website from 2011.
During the whole process, you should focus on the main particular problem. If you focus on multiple problems, it can distract you from the main problem. This is an issue because it leads to thinking about building multiple features, which shouldn’t be included in your MVP.
Find the Early Adopters of Your Product
One of the common mistakes founders make is that they want to create a product that is too idea-centric rather than keeping the customers at first place.
You need to find people most eager to try out your product. They will give you valuable feedback on how to improve the product. If you focus on a small subset of your target market, you will get better feedback. It helps you to determine where and how to market your product and profile your MVP in the next versions.
Forget about spending a lot of money on advertising and marketing. You should focus on building a community of loyal users. Social networks and discussion forums are your good friends. If you decide to experiment with ads, you can use ad creator to effectively create personalized ads.
Does the Product Satisfy Strong Market Demand?
This is something you will probably figure out when you try to achieve product/market fit. However, it is a good idea to think about this before building an MVP. Most startups fail because they develop a product, which nobody wants. You don’t want to spend a lot of time and resources to build something where there is no demand.
Furthermore, there is a difference when people say they like your product and the ones who will pay for it. You can get positive feedback, where people are saying your product is interesting with cool features. If you start monetizing your product by even a small amount and users are not willing to pay for it, the need for your product is not strong enough.
In the video below, you can see how to do audience research using Facebook Audience Insights Tool.
Analyze Your Competitors
Maybe you think you have a new unique idea. This assumption is very tricky because sometimes my friends ask me about my opinion on their ideas for applications. Sometimes, they have really good ideas. If we do a little research, we can find similar ideas. We just haven’t heard about them before.
There are tons of new applications and software products on the market. It’s important to make a research if there are similar solutions as you want to build. You can also try to find similar startups that failed, reach out to their founders and ask them what was the reason they needed to shut down the product and what they would have done differently. Many founders are open to discuss this. There were many search engines before Google and many social networks before Facebook.
It’s worth mentioning that your competition doesn’t have to be necessarily direct. If you ask yourself “What substitutive product is available on the market?”, you can find indirect or substitute competition. For example, Netflix admitted that his main competitors are not video streaming platforms, but YouTube.
There are various tools for SEO, which you can use for competitors analysis. Specifically, you can find useful information about competitors’ website. You can use tools like SimilarWeb, Ahrefs or Alexa. You can get metrics such as monthly traffic, sources of traffic, geographic location of your users and other helpful information.
SimilarWeb allows you to see top referring sites of your competitors website and much more.
Alexa gives you a site flow of you competitors website and much more.
List All Necessary Features and Prioritize Them
You have probably identified a lot of features that can turn your product into a killer app. Make a list of all the features you want in your MVP. Once you created the list, you need to decide which features should be included in MVP.
Although selecting features can be harder than it seems like. Keep in mind, your MVP should provide the core value to your users. You need to differentiate between “nice-to-have” features and “must-have” features. If you focus on only a couple of essential features and cut off “nice-to-have” features, you will dramatically reduce the time to market and development cost.
Landing Page for Your MVP
In most businesses, people want to create a landing page if they want to offer or sell a finished product. However, building a landing page before building a product has many advantages:
- You can use search engine optimization (SEO) or set up an Adwords campaign to drive traffic to your landing page. If your target demographic clicks on the ads, then you have an indication that there is some interest.
- You can use a fake door technique to find out how potential customers perceive your product. Simply said, if landing page visitors are interested in the product and then click an action button, they are asked to provide their email address to get notified when the product is ready.
- You can add a video to the landing page, where you can show a prototype of your product in action. You can accurately demonstrate what you intend your product to do.
In the video below, you can see how Drew Houston demonstrates a Dropbox prototype.
A simple landing page website and video are minimal, far from a viable product. However, it is a good way to prove an interest in your idea.
Your landing page should explain what your product does for users, what are the benefits of using your product and it should have an effective CTA. You can check this article to get more tips on how to structure your landing page. When you know how your landing page should look like, you need to figure out:
How to build a landing page?
Building a one-page website that describes your idea is an easy task for an experienced front-end developer. However, if you don’t know how to build websites, you have three options:
- You can use a landing page generator.
- You can hire a freelance front-end developer
- You can learn how to make websites
You should opt for the last option, only if you have a lot of free time.
Assuming, you don’t have a lot of free time to learn coding websites, should you use a landing page generator or hire a front-end developer? Both approaches have pros and cons.
Using a landing page generator is a more efficient and cheaper option than hiring a front-end developer. However, using a landing page generator doesn’t need to work well in many cases.
At first, you need to figure out what you want to achieve and measure with your landing page. You can check popular landing pages generators and their features. You can take a look at Webflow, Wix, Cardd, Squarespace, check their themes and find one, which matches your requirements. All of these services provide good options to customize the website and user interface. However, there are essential features, which can be hard to implement or you cannot achieve with a landing page generator.
- Do you want to add user interactions, a prototype in action, animations or any effects? Landing pages allow you to create only static content for your websites.
- Do you need a landing page, which is optimized for search engines? Do you need to do keyword research and optimize website content? Landing page generators cannot do this for you, but experienced front-end engineers do.
- Is there an additional workflow or action? For example, do you want to send an email message, when users provide you their email address? You need to know what functionalities you require from a landing page and if you can achieve it by using a generator.
- Do you need additional optimization? If your landing page uses a lot of third-party services and graphic elements, your landing page can be too slow and it requires additional optimizations, which you cannot achieve using just a generator.
Using a landing page generator is a better option if you don’t have any technical knowledge and you want to add only a static content with text, images or a video and Goggle Analytics script to measure page traffic.
If you want to make the landing page more interactive, if you want to optimize it for search engines or you want to add an additional action or workflow, it is a better idea to hire a front-end developer to build a custom website.
If you decide to build a custom landing page without using a generator, it is a good idea to choose a CMS. WordPress is one of the most popular content management systems, which is very helpful if you decide to share more details about your idea over time. WordPress platform gives you both a landing page and a blog in one. It has a lot of plugins and tools, which allows adding many features to the landing page in a very short time.
Google Analytics should be one of your “must-have” tools for your landing page, because it is one of the most popular analytics tools for free. It allows you to analyze a lot of details about website visitors. Besides Google Analytics, you should consider Google Search Console, which measures visibility of your website for Google search engine. You can use a behaviour analytics tool too. You can consider Hotjar, which allows you to add a heatmap and a funnel for free.
Heatmap of my home page section. Heatmaps can help you to understand, which parts of website are most interesting for your visitors.
If you are going to collect email of your visitors or potential users, a service for managing mailing list saves you a lot of time. You can take a look at MailChimp, which provides free tier up to 2000 contacts.
If you want to connect third-party services or automate some tasks or logic, take a look at IFTTT, Zapier or Microsoft Flow. Do you blog often and want to post to all major social platform? Or do you upload Youtube video, which you want to turn into a blog post on WordPress? An automation tool is what you need.
Strategies for Building an MVP
Now, you are probably ready to get something in front of your potential customers. You should do some research and decide what type of MVP model fits to your product. The most common MVP models are Piecemeal MVP, Wizard of Oz MVP, Concierge MVP or a Single-feature MVP. If you are not familiar with MVP models, you can take a look at my previous blog post.
In this part, I want to present how to make your product customer-facing and what tools and services you can use.
Now, we know what we want to build and what features we want to add to the first version of the minimal viable product.
What technologies and tools we can use to streamline the whole development process?
In this part, I will present services and tools which help you to build a specific part of your MVP much faster. Often times, engineers want to reinvent the wheel, because they love coding and playing with new technologies. However, if you are going to hire a freelance full stack developer to build your MVP, he should be able to explain why some of these tools are or aren’t suitable for your MVP. Let’s take a look at how to build an MVP with the best available tools.
Front-end FrameworksUser Interface Vectors by Vecteezy Construction Vectors by Vecteezy
Most CSS frameworks come with predesigned components, but Tailwind is a utility-first CSS Framework, which provides utility classes. It allows you to define your own utility classes to support your custom web design components. This is must to use CSS framework for your prototypes and MVPs, because it significantly speeds up front-end development. If you are front-end developer, maybe you are wondering:
This is just a new CSS framework, which I need to learn. How it can help me?
By using Tailwind, you don’t need to switch between CSS and HTML code so often, because you define all classes in HTML code. HTML elements will have more classes, but you will achieve elements styles that you need. If you start using Tailwind and you can’t remember utility classes, you can use Tailwind plugin for your code editor, or simply you can use just a subset of utility classes. This CSS framework won’t slow you down in the begging, because there is almost no learning curve.
You can consider Bootstrap, Foundation, Materialize CSS or a similar front-end framework if you need a lot of UI components in your project. Bootstrap is the most popular CSS framework and you can find a lot of third-party libraries and components for this framework.
Bootstrap also contains utility classes. If you need to use a lot of UI elements from a framework and it matches your design, probably you don’t really need to use Tailwind. However, this is very rare because usually, everybody wants to achieve a unique and custom design.
The most popular libraries for developing single-page applications are React, Angular or Vue. But do you need to develop a SPA?
A minimal viable product should have a minimum set of features. You can achieve an engaging user interface without using React, but you should develop SPA if your user interface is more complex. Single-page applications is a good use case for user interfaces where:
- The application needs to dynamically redraw (rewrite) web page content without a browser refresh (reload) of the entire website.
- There are components, which data depends on each other.
- There are many similar components such as dynamic lists, tables, visualizations, etc.
You need to make sure technology supports your needs and solution. In many cases, you can choose whatever you want and Node.js, Laravel, Ruby on Rails, Django are all legitimate options for building an MVP. However, there is a golden rule you should keep in mind.
If you decide a specific language or framework, always choose a proven technology. If you choose a new technology, there are two aspects that can complicate finishing your MVP.
- You will have hard time to find an experienced developer
- Developers spend a lot of time with research and development instead of building MVP
Ruby on Rails used to be the most popular back-end framework for building MVPs, because you can develop applications in RoR faster than in other frameworks. However, Ruby on Rails community is moving to Phoenix for several reasons, including productivity , , .
That's… a lotta frustrated Rubyists :O #RubyonRails #elixirconf pic.twitter.com/33HJ9iIM2i— Peter Marreck (@pmarreck) October 3, 2015
Python is a good option for projects which require machine learning and data science. Node.js and Python are good options for projects which require web scraping. Node.js is a good language for interactive applications and Golang is the best choice for a high load application that processes millions of requests.
Function as a Service (FaaS)
Function as a service (FaaS) allows you to deploy and run application’s functions separately without requiring you to provision the virtual machine and the operating system that runs that code. The management of servers, infrastructure when deploying code, as all computing resources are dynamically provisioned by a cloud provider. The general concept of serverless computing was introduced to the market by Amazon Web Services (AWS) around 2014 with the release of AWS Lambda.
You can save a lot of time deploying separate functions as a service because you don’t need to set up the whole server. This is a very good use case for some easy back-end tasks, data transformation, web scraping. However, if you decide to use a serverless model, application architecture can be very different. You can find more details on this topic on Mike Roberts article Serverless Architectures.
There are some other disadvantages you need to consider with serverless architecture, such as cold starts — a delay when a function is started for the first time, serverless architecture doesn’t work well with RDBMS and scalability, monitoring and debugging can be challenging. You can check Paul Chonston’s article Serverless Best Practices to get more info on this topic.
AWS Lambda, Azure Functions, and Google Cloud Functions are the most popular serverless computing platforms. All these platforms provide a free tier, which should be enough for an early version of MVP.
Identity as a Service (IDaaS)
Almost every web application needs user authentication, including MVP. This seems like an easy task, but authentication includes user registration, email verification, user login, and reset the password. Furthermore, you want to allow users to login using social networks and they are changing their API frequently. You need to use a good authentication strategy and several libraries to support it in your MVP. You can save a lot of time by using services for authenticating and managing your users. This is exactly “how to build an MVP”.
There is an identity as a service, which you can use in your MVP. You can check out Auth0, AWS Cognito or Firebase Authentication. They provide a free tier for thousands of users. If your application grows, you can develop your own authentication system. I wrote a blog post on how to implement authentication with social networks in Node.js and React.js.
Database as a Service (DBaaS)Cloud Network Vectors by Vecteezy
Database as a Service (DBaaS) allows you to quickly instantiate a database using cloud infrastructure. There are services such as Firestore, FaunaDB, or AWS DynamoDB. You can integrate a cloud database with cloud functions (FaaS). Firestore and FaunaDB allow you to access the database directly from a client. However, cloud databases can be limited in terms of queries and projections.
Payments as a Service (PaaS)Online Payment Vectors by Vecteezy
If you want to validate if users are willing to pay for your solution, you can add payments to your MVP and charge customers for a small amount. It would take a lot of time to develop own payment processing, but there are some great available options. One of the best options for SaaS businesses is Stripe, which is available in many countries. If you cannot use Stripe, you can consider Gumroad, Paddle, or Braintree.
Cloud hostingCloud Computing Vectors by Vecteezy
When you need to run a web application or a web service, you need a hosting service that makes it available to the world. Cloud hosting allows you to deploy your web application without the hassle of managing servers.
For most MVPs, you can use Heroku, a cloud platform as a service (PaaS). Anyone who has used Heroku before knows how simple and easy it is to deploy and run a web application. You can focus on iterating your product without having to assign a dedicated person to devops. On the other hand, you cannot control the exact configuration of your server in terms of hardware. Further, if traffic to your web application is high, you have to pay a lot for Heroku and it makes more sense to migrate to other solutions where you have more control for your infrastructure.
Amazon Web Services (AWS) is an Infrastructure as a Service (IaaS), offering compute power, database storage, content delivery, and other functionality to help your online businesses scale and grow. If you are not sure about the traffic of your project, it is better to deploy your project on Heroku first. If your web application scales, it is better to deploy on AWS.
Building a minimal viable product can be painful, if you don’t choose the right technologies and tools, which should support your type of solution and challenges. Before we start building an MVP we need to do several steps. We should define a value proposition, find early adopters and analyze competition.
Landing page should be a key element, which you should take into account before building an MVP. In this blog post, you can find how to build an effective landing page, including landing page generators. Next, you can find frameworks and tools, which can streamline the whole development process and help you to ship your MVP faster.
I hope you found useful information on how to build an mvp. I would love to hear from you, if you think something is missing in this blog post. Did I miss any tools that have helped you build your MVP?