I totally agree that setting up a product that is extensible, stable, scalable, etc. is something that needs to be done.

As I see it, and how I'm currently executing, is that the focus on extensibility and modularity increases over time. I look at making that extensible software as something that starts in an MVP with a focus on 1K users max, and grows and becomes more important from that point on. So it is something you can do a while after the initial launch.

> Just because this latency is different, doesn't mean you ship MVPs, broken pieces of software that require constant patching.

I agree that the MVP should be working properly. No doubt there. But it should also focus on testing if it provides value (and see if it actually is viable?). By capping it at 1K users to start with you can focus on the value part instead of spending your time on tech implementation at first.

Especially for bootstrapping solo founders, I strongly believe that the focus should be on the value of the product in the beginning, not in the setup of the technical solution.

I'm going to use my own case as an example:

As a single developer I'm working on a product idea (sharing your videos via enhanced QR codes that enable Augmented video watching without the viewer having to install an app).

I could set up the infra, cloud services, build extensible pretty code and do the works in getting this ready to shine and go for 10K users.

But I chose not to. Right now, I'm focussing on the proof of concept (which is for showing ME that the idea is feasible and usable in the ways that I want it to work).

The PoC will only have the concept of working roughly and the code will be a lot of hacked-together code that makes sense to me.
This isn't an MVP as I won't have user accounts, authentication, security, payments, .. implemented. Just the core functionality.

I'm going to share the product with a bunch of people in my network to get initial feedback about it and I'm going to use it myself.

I probably will use footage of using it, along with an explanation of the idea for a landing page.

I'll know within a week or two if the idea is good enough to keep using it myself and I'll have my network feedback along with things I didn't consider that need to be in check.

When the lights are green, I'll start a new solution with clean code and the core functionality from the PoC implemented so its clean, expandable, maintainable, secure, tested, etc.

I'll have the minimum feature set around it (security, accounts, support channel, payments, ...) to make it a whole experience.

For the MVP my focus lies on reaching 10, 100, and then hopefully 1K users.
And I will have a tonne of work laying ahead of fixing stuff, giving support and helping out.

I'll also have metrics about bandwidth usage, unforeseen scenarios, people who are working my product and stretching its limits in ways I didn't even consider.

And _that right there_, that moment after I hopefully have a bunch of users, is where I would make sure the amount of users is capped, and where I start to invest time on making this more scalable, improving the app experience, see If there need to be changes of the services used I'll use in the background (behind the API), etc.

There will be a lot I've learned by this point. And if the product has proven to be viable (I gain enough revenue from it to justify working on it), I'll be working hard to make it even more secure, stable, scalable, and future proof.

While writing this, I feel like we aren't that different in how we look at things. Perhaps its semantics, perhaps I just need an extra cup of coffee.

I think that the focus on CI/CD, scalability, modularity starts with the MVP and increases from there.

I know there are quite some products that ran a nice MVP and reworked their backend from scratch on after some time to make things more flexible and elastic to take on more users.

My mantra:

Code Hard, Ship Harder