• We'll do it live
  • Posts
  • The hardest thing an MVP is not the initial 90% of development.

The hardest thing an MVP is not the initial 90% of development.

Is the second 90%. Why do we need 2 90%?

Building an MVP is the most exciting part of a startup journey.

You get to focus on the problem and apply all the best practices to build something people want quickly.

Progress is great, you can fly through most of it and even show progress to early adopters.

But then you need to get ready to onboard customers and you need to make your MVP somewhat usable. And that's when things get hard.

If you've been in this game for a while, you know the 90/90 rule.

But before I tell you about this rule, let me give you some context.

  • I'm building a SaaS in public, posting progress every day today is day 22.

  • I'm adding lessons from my mistakes and learning from current events.

  • I'm live-sharing as I build holding nothing back.

  • If you're interested, you can binge-read all the past updates in my newsletter.

In software engineering 90/90 rule states:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

There is also Hofstadter's Law

Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

This is a funny way to say that no matter how much we plan and focus:

  • things will take longer than expected

  • the last 10% of the work is what takes the longest (a.k.a the second 90%)

This has a big impact when building an MVP.

Let me give you a real case, my SaaS.

I started the MVP of Landing Page Wizard almost 10 days ago:

  • I focused on the core concept: Make it easy for people to create a high-converting landing page.

  • I had something working the first day. A simple page that was loading some hardcoded content on a site somewhere.

  • The day after I added a "Hero" section. Then configured a bunch of NextJs magic to have the page as perfomant as possible.

  • Then I added most of the sections that a landing page needs (social proof, benefits, faq, etc)

  • The next day, I made the content editable via a form to create as many pages as needed.

That was about 4 or 5 days' worth of work. All was going incredibly well.

Then I started adding images and went down a rabbit hole of performance optimization.

I can spend the next 100 days talking about this, needless to say is still a hard thing to get right but I did it.

That set me back a day or so but still insane progress.

I then shared a demo with a close group of people to get some early feedback, all was great and I got positive comments.

It was time to get some early customers.

Things started to get complicated.

To have a customer I need to have a "few" things in place:

  • a way for them to pay me

  • for them to pay me I need to set up Stripe

  • to set up Stripe there are some requirements, for example, a Terms and Conditions page

  • After stripe is set up and I can get a customer, they need an account

  • So I need to add an auth system, can easily take one off the shelf like Clerk, I choose supabase. Less drop-in features but I used them in the past so no learning curve.

  • I need a database to store some of the user information and the landing pages they are creating

  • I need to add authorization to make sure users can only see the data that belongs to them

And the list grows longer.

As you can see, it all started as a simple way to create landing pages. But it quickly became a whole lot of work that had nothing to do with the problem I wanted to solve.

I hear you in the back of the room: "Just use a SaaS starter kit"

You might be right. I see SaaS starter kits as the wrong solution to this problem.

I'll cover this in more detail as I have some good examples of how SaaS starter kit can be more harmful than good

I believe they create a false sense of security.

Ship your SaaS in days not weeks but then spend weeks learning how the starter kit works. Configure all the third-party providers. Work in the things you MIGHT need, not what you desperately need.

I'll use auth as an example, without a starter kit you need to think:

"What's the easiest thing I can do for my users to have an account"

Note that the question didn't cover creating an account, password recovery, email confirmations, and more. That's on purpose

The easiest way for my customers to have an account is to create the account manually. I can add it to my auth provider and set up a magic link for them to log in.

I'm onboarding people manually so I don't need to have a full login system now.

It's super important to keep applying the same principles throughout the whole MVP development cycle. Not only the first 90%, but the second 90% too!

In 2024 is super easy to find something that solves your problem. What's hard now is knowing what problems that solution creates.

Over to you now:

How do you go about making your MVP good enough to onboard your first customer?

Are you a SaaS starter kit user? What was your experience with it?

Progress

So far

  • I started a SaaS 2 years ago. I failed at making it take off.

  • I had a problem: I wasted tons of time and money in creating landing pages that sucked.

  • To make it worse, I wasted tons of money on ads that would send traffic to terrible landing pages.

  • I decided to get all the learning from my failure and build something new in public

  • I'm documenting the journey and the actions I'm taking every day. Also adding learning from my experience

  • After I picked the problem I wanted to solve. I formulated a hypothesis: "People are willing to pay for a product that makes it easy to create high-converting landing pages."

  • I did a few user interviews to confirm the hypothesis.

  • After doing enough interviews I had enough confidence to build an MVP.

  • I shared the initial MVP with a few people and I got positive results.

  • My business model will be a monthly subscription starting at £10 a month for the first 10 customers.

  • Once I've onboarded the first few customers I'll have a better idea for pricing.

Latest

  • I'm making the MVP ready to onboard customers.

  • The core MVP is good enough but a few things are missing:

  • User accounts, an auth/authz, and a database. Nothing major.

  • Yesterday I added a database, I went for Turso + Drizzle as ORM.

  • Today I'm adding auth using supabase. I will create an account manually for now so nothing special is needed

  • After that the last thing missing is Stripe. Getting a payment link for customers to pay me and start using my product

Celebrations

So many legends!

  • Yesterday the newsletter count was stuck at 33. Today is at 38! This is unbelievable thank you all so much!

  • The LinkedIn newsletter just keeps growing 155 people subscribed so far!

  • I met some incredible people on X, if you're on that platform come say hi.

I cannot thank you all enough for your help and support, you're all legends!

How would you rate this issue?

The biggest room in my house is the room for improvement. Don't hold back, give me the good and the bad.

Login or Subscribe to participate in polls.

Reply

or to participate.