How to Build an MVP Fast as a Solo Developer (Weeks, Not Months)

What "Fast" Actually Means
When I say "build an MVP fast," I mean weeks. Not months. Not "as fast as possible while still doing everything properly." Weeks. Two to four of them, with focused effort.
This is not a motivational statement. It is a practical constraint. The longer you spend building before you ship, the more assumptions you bake into the product without testing them. Some of those assumptions are wrong. Every extra week of building increases the cost of discovering which ones.
I have shipped MVPs in two weeks and I have spent five months on products that should have been MVPs. The two-week versions were rough, embarrassing in places, and missing obvious features. They also generated real user feedback that completely changed my understanding of what the product needed. The five-month versions were polished, feature-rich, and wrong about things I could have discovered in the first month.
Speed is not about cutting corners. It is about testing your hypothesis before you have invested so much that you cannot afford to be wrong.
The Relationship Between Scope and Speed
This is the most important section of this entire article. If you take one thing away, let it be this: the fastest way to build an MVP is to build less.
Not build faster. Build less.
Most developers try to speed up by working more hours, using faster tools, or writing code more efficiently. These help, but they are marginal improvements. Cutting a feature from your MVP is not a marginal improvement. It eliminates days or weeks of work entirely.
Here is an exercise. Write down every feature your MVP "needs." Now go through the list and for each feature ask: can a user get value from the product without this? If the answer is yes, cross it out.
You will cross out more than you expect. User settings? Not for the MVP. Multiple themes? Not for the MVP. Social login? Not for the MVP if email/password works. Export to PDF? Not for the MVP. Notification emails? Probably not for the MVP.
What is left should be the core loop. The single thing your product does that makes the problem go away. Build that. Ship that. Everything else comes after you know the core works.
According to CB Insights research on startup failure, 42% of startups fail because there's no market need. And those are funded teams with product managers doing market research. Solo developers who skip validation entirely face worse odds. Build less, validate first.
I wrote about this at length in how to ship faster as a solo developer. Scope discipline is the number one predictor of shipping speed. It beats every other factor by a wide margin.
FoundStep enforces this through Scope Locking. Once you define your MVP scope, it is locked. Adding anything requires a deliberate unlock, and that unlock is recorded in your Shame History as a scope change. The friction is the feature. It makes you think twice before expanding scope, which is exactly what you need during MVP development.
Tech Stack Choices: What Accelerates and What Slows Down
Your tech stack decision should be driven by one question: what can I ship fastest with?
Use what you know. This is the single most important tech stack advice for MVPs. If you know React, use React. If you know Django, use Django. If you know Rails, use Rails. Learning a new framework during MVP development is the most common way developers turn a two-week project into a two-month project.
I do not care if the new framework is "better." Better does not matter when you have not shipped anything. Shipped and imperfect beats unshipped and optimal every time.
Use opinionated frameworks. Frameworks that make decisions for you save time. Next.js, Rails, Laravel, Django. They have opinions about routing, database access, and project structure. Those opinions eliminate decision-making time. When you are building an MVP, every decision you do not have to make is time saved.
Use managed services. Do not set up your own database server. Do not configure your own email sending infrastructure. Do not build your own authentication system. Use Supabase or PlanetScale for databases. Use Resend or Postmark for email. Use Clerk or Auth.js for auth. Each managed service you adopt saves days of setup and maintenance.
Avoid microservices. A monolith is faster to build, faster to deploy, and easier to debug. You do not need microservices for an MVP. You do not need them until you have scaling problems, and you will not have scaling problems because your MVP does not have enough users to create them.
Avoid premature abstraction. Write the code that solves the problem. Do not build a plugin system. Do not create an abstraction layer for "future flexibility." Do not write a custom ORM. You are building a product, not a framework. The abstraction you create now will probably be wrong because you do not yet understand the problem well enough.
The Tools I Reach For
This is opinionated and your mileage will vary, but here is what I use when I need to ship fast:
For web apps: Next.js with a hosted database (Supabase or PlanetScale), Tailwind CSS for styling, and a component library like shadcn/ui to avoid building UI from scratch.
For landing pages: Same stack, or even simpler. A static site generator works fine.
For CLI tools: Whatever language I am most fluent in, with minimal dependencies.
The common thread: familiar tools, managed infrastructure, and component libraries that eliminate boilerplate.
The "Ugly But Functional" Principle
Your MVP will be ugly. Accept this now. Fight the urge to polish.
"Ugly but functional" means the product works, solves the problem, and can be used by a real person, but it does not look great. The design is basic. The animations are absent. The error messages are generic. Some screens are just plain text with no styling.
This is fine. More than fine, it is correct for this stage.
Here is why: aesthetics do not validate a product hypothesis. If your ugly MVP solves a real problem, users will tolerate the ugliness. If your polished MVP does not solve a real problem, the polish will not save it.
I have watched developers spend three days choosing a color palette for an MVP that nobody ended up using. Three days of design work, zero impact on the outcome. Those three days could have been spent building the next feature or, better yet, shipping earlier.
The exception: if your product is a design tool or something where visual quality is part of the core value proposition. In that case, some level of visual quality is required for the hypothesis to be testable. But even then, "good enough" beats "perfect."
Practical rules for ugly-but-functional development:
- Use a component library. It gives you decent-looking UI without custom design work.
- Skip custom illustrations, icons, and animations entirely.
- Use system fonts or a single web font. Do not deliberate over typography.
- Make it usable on desktop. Mobile can wait.
- Skip the onboarding flow. A paragraph of text explaining how to use the product is enough for an MVP.
Deployment Shortcuts
Deployment should take minutes, not days. Here are the shortcuts.
Use a platform with zero-config deployment. Vercel, Netlify, Railway, Render, Fly.io. Push to git, the app deploys. No CI/CD pipeline to configure, no Docker containers to build, no server to maintain.
Use a subdomain or the platform's default URL. You do not need a custom domain for an MVP. yourapp.vercel.app works fine. Buy the domain later if the product validates.
Skip the custom email setup. Use a transactional email service with their default sending domain. Custom email domains require DNS configuration and warmup time. That is not worth it for an MVP.
Skip SSL certificate management. Platforms like Vercel handle this automatically. If you are running your own server, use Let's Encrypt with auto-renewal.
Skip monitoring and logging infrastructure. For an MVP with 10-50 users, check the deployment platform's built-in logs. You do not need Datadog.
The goal: deploy on day one of building, not on the last day. Deploy the empty project immediately and push updates as you build. This eliminates the "deployment day" bottleneck where everything breaks because you have never tested the production environment.
The 4-Week Solo MVP Sprint
Indie Hackers community data shows that solo developers who set 4-week MVP deadlines ship at dramatically higher rates than those with open timelines. The deadline creates urgency. Open timelines create abandoned repos.
Here's a 4-week structure that works:
Week 1: Foundation. Set up project, deploy to a live URL, build the first (most critical) feature end-to-end. Goal: something works, even if it's ugly.
Week 2: Core Features. Build features 2-4. Focus on function, not polish. Goal: the product does what it's supposed to do.
Week 3: Integration and Flow. Connect everything into a usable flow. Basic error handling (not edge case hunting). Goal: someone other than you can use it.
Week 4: Ship. Fix critical bugs only. Write the landing page. Get it live.
If you're building nights and weekends, stretch this to 6-8 weeks. But set the deadline before you start. Write it down. Tell someone.
When to Stop Building and Start Shipping
This is the hardest part. Knowing when to stop adding features and push the product out the door.
Here is my rule: if a user can complete the core workflow and get value, the MVP is ready. Not ready for everyone. Not ready for scale. Ready to test with a small group of people who have the problem you are solving.
Signs your MVP is ready to ship:
- You can demo it to someone in under 2 minutes
- A user can sign up and get value without your help
- The core feature works, even if edge cases are unhandled
- You have been working on it for more than two weeks and the remaining tasks are mostly polish
Signs your MVP is not ready:
- The core workflow is incomplete
- It crashes during normal use
- You cannot explain what it does in one sentence
- There is no way for a user to accomplish the primary task
The pull to keep building is strong. I feel it every time. "Just one more feature" feels harmless. But each "one more feature" is a few days of work, and after three or four of them, you have delayed your launch by weeks.
A structured workflow for solo developers helps here because it creates checkpoints. When you reach the "scope complete" checkpoint, you ship. Not when you feel ready. When the scope is done.
FoundStep's AI MVP Planner generates a plan with a defined endpoint. When you complete the plan, you ship. Having an external definition of "done" is easier to follow than an internal one, because your internal definition keeps expanding.
How to Know Your MVP Is "Done Enough"
Here's a checklist. If you can answer yes to all five, ship today:
- Does it solve the core problem? Not every problem. The core problem.
- Can someone else use it without you standing behind them? Basic usability, not perfection.
- Does it work on the happy path? Edge cases are for v1.1.
- Can you deploy it in under an hour? If deployment is complicated, simplify it.
- Would you show it to a stranger? Not "would they be impressed" — "would it work for them?"
If yes to all five, stop building. Start shipping.
The Speed Mindset
Building an MVP fast is less about specific techniques and more about a mindset shift. Here are the beliefs that drive speed:
Shipping is learning. Every day your product is not in front of users is a day you are operating on assumptions. Ship to start learning.
Good enough beats perfect. Perfection is the enemy of shipping. It always has been. Your MVP is a draft, not a final version.
Users are forgiving. Early adopters expect rough edges. They signed up to try something new, not to experience a polished product. Give them the core value and they will forgive the rest.
Your time is the constraint. As a solo developer, you do not have the luxury of large teams that can build in parallel. Every feature you add is time you are spending instead of shipping and learning. Be stingy with your time.
Code is disposable. Some of the code you write for your MVP will be rewritten. That is fine. Writing disposable code fast is better than writing permanent code slowly when you do not yet know what the permanent version should look like.
The developers who ship MVPs in weeks are not smarter or more talented than the ones who take months. They just have a different relationship with imperfection. They are comfortable being uncomfortable. They ship things that embarrass them. And then they improve those things based on what real users actually need.
If you want to launch your side project, start with the smallest possible version. You can always make it bigger. You cannot get back the months you spent building features nobody asked for.
The Two-Week MVP Challenge
Here is a concrete challenge if you want to practice building fast.
Pick an idea. Any idea. It does not need to be your best idea. Give yourself exactly two weeks. At the end of two weeks, whatever you have is your MVP. Ship it.
Constraints:
- Use technology you already know
- Maximum 3 features (including the core)
- Deploy by end of day one (even if it is just a blank page)
- No custom design work (use a component library)
- No features that require third-party API approvals or partnerships
- Ship to at least 5 people on day 14
The point is not to build something great. The point is to practice the act of shipping under a time constraint. The skills you build, scoping aggressively, making fast decisions, accepting imperfection, transfer directly to every future project.
Two weeks. Fourteen days. Go.
FAQs
What is a realistic timeline for building an MVP as a solo developer?
Two to four weeks for a tightly scoped product, working 10-15 hours per week. If your MVP will take longer than six weeks, your scope is probably too large.
Should I use a no-code tool to build my MVP faster?
If your product does not require custom logic or complex data handling, yes. No-code tools are great for landing pages, simple CRUD apps, and marketplaces. If your product is technically complex or needs custom behavior, code is faster in the long run because you avoid fighting the tool's limitations.
Is it okay to ship an MVP with messy code?
Yes. Nobody sees your code except you. Users see the product. If the product works and solves their problem, the code quality is irrelevant at the MVP stage. Refactor after you have validated the product.
How do I decide which features to cut from my MVP?
Ask: can a user get value from the product without this feature? If yes, cut it. Your MVP needs exactly one path to value. Everything else is a distraction from shipping.
What if my MVP is too embarrassing to share?
If it solves the problem, share it. The first version of almost every successful product was embarrassing. Users care about outcomes, not polish. Your embarrassment is a feeling, not a market signal.
Ready to ship your side project?
FoundStep helps indie developers validate ideas, lock scope, and actually finish what they start. Stop starting. Start finishing.
Get Started Free

